15b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* md5.h - an implementation of the MD5 algorithm and MD5 crypt */ 25b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* 35b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * GRUB -- GRand Unified Bootloader 45b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Copyright (C) 2000 Free Software Foundation, Inc. 55b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 65b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * This program is free software; you can redistribute it and/or modify 75b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * it under the terms of the GNU General Public License as published by 85b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * the Free Software Foundation; either version 2 of the License, or 95b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * (at your option) any later version. 105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * This program is distributed in the hope that it will be useful, 125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * GNU General Public License for more details. 155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * You should have received a copy of the GNU General Public License 175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * along with this program; if not, write to the Free Software 185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */ 205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* If CHECK is true, check a password for correctness. Returns 0 225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project if password was correct, and a value != 0 for error, similarly 235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project to strcmp. 245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project If CHECK is false, crypt KEY and save the result in CRYPTED. 255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project CRYPTED must have a salt. */ 265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Projectextern int md5_password (const char *key, char *crypted, int check); 275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* For convenience. */ 295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define check_md5_password(key,crypted) md5_password((key), (crypted), 1) 305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define make_md5_password(key,crypted) md5_password((key), (crypted), 0) 31