/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2013 The OpenLDAP Foundation.
+ * Copyright 1998-2017 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
# include <openssl/des.h>
-typedef des_cblock des_key;
-typedef des_cblock des_data_block;
-typedef des_key_schedule des_context;
+typedef DES_cblock des_key;
+typedef DES_cblock des_data_block;
+typedef DES_key_schedule des_context[1];
#define des_failed(encrypted) 0
#define des_finish(key, schedule)
unsigned char SHA1digest[LUTIL_SHA1_BYTES];
int rc;
unsigned char *orig_pass = NULL;
+ size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
/* safety check -- must have some salt */
- if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) <= sizeof(SHA1digest)) {
+ if (decode_len <= sizeof(SHA1digest)) {
return LUTIL_PASSWD_ERR;
}
/* decode base64 password */
- orig_pass = (unsigned char *) ber_memalloc( (size_t) (
- LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+ orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
- rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+ rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
/* safety check -- must have some salt */
if (rc <= (int)(sizeof(SHA1digest))) {
unsigned char SHA1digest[LUTIL_SHA1_BYTES];
int rc;
unsigned char *orig_pass = NULL;
+ size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
/* safety check */
- if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) < sizeof(SHA1digest)) {
+ if (decode_len < sizeof(SHA1digest)) {
return LUTIL_PASSWD_ERR;
}
/* base64 un-encode password */
- orig_pass = (unsigned char *) ber_memalloc( (size_t) (
- LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+ orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
- rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+ rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
if( rc != sizeof(SHA1digest) ) {
ber_memfree(orig_pass);
unsigned char MD5digest[LUTIL_MD5_BYTES];
int rc;
unsigned char *orig_pass = NULL;
+ size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
/* safety check */
- if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) <= sizeof(MD5digest)) {
+ if (decode_len <= sizeof(MD5digest)) {
return LUTIL_PASSWD_ERR;
}
/* base64 un-encode password */
- orig_pass = (unsigned char *) ber_memalloc( (size_t) (
- LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+ orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
- rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+ rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
if (rc <= (int)(sizeof(MD5digest))) {
ber_memfree(orig_pass);
unsigned char MD5digest[LUTIL_MD5_BYTES];
int rc;
unsigned char *orig_pass = NULL;
+ size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
/* safety check */
- if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) < sizeof(MD5digest)) {
+ if (decode_len < sizeof(MD5digest)) {
return LUTIL_PASSWD_ERR;
}
/* base64 un-encode password */
- orig_pass = (unsigned char *) ber_memalloc( (size_t) (
- LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+ orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
- rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+ rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
if ( rc != sizeof(MD5digest) ) {
ber_memfree(orig_pass);
return LUTIL_PASSWD_ERR;
des_set_key_and_parity( des_key *key, unsigned char *keyData)
{
memcpy(key, keyData, 8);
- des_set_odd_parity( key );
+ DES_set_odd_parity( key );
}
}
static void
-des_set_key_unchecked( des_key *key, des_context ctxt )
+DES_set_key_unchecked( des_key *key, des_context ctxt )
{
ctxt[0] = NULL;
}
static void
-des_ecb_encrypt( des_data_block *plain, des_data_block *encrypted,
+DES_ecb_encrypt( des_data_block *plain, des_data_block *encrypted,
des_context ctxt, int op)
{
SECStatus rv;
ldap_pvt_str2upper( UcasePassword );
lmPasswd_to_key( UcasePassword, &key );
- des_set_key_unchecked( &key, schedule );
- des_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
+ DES_set_key_unchecked( &key, schedule );
+ DES_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
if (des_failed(&PasswordHash1)) {
return LUTIL_PASSWD_ERR;
}
lmPasswd_to_key( &UcasePassword[7], &key );
- des_set_key_unchecked( &key, schedule );
- des_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
+ DES_set_key_unchecked( &key, schedule );
+ DES_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
if (des_failed(&PasswordHash2)) {
return LUTIL_PASSWD_ERR;
}
ldap_pvt_str2upper( UcasePassword );
lmPasswd_to_key( UcasePassword, &key );
- des_set_key_unchecked( &key, schedule );
- des_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
+ DES_set_key_unchecked( &key, schedule );
+ DES_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
lmPasswd_to_key( &UcasePassword[7], &key );
- des_set_key_unchecked( &key, schedule );
- des_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
+ DES_set_key_unchecked( &key, schedule );
+ DES_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
sprintf( PasswordHash, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
PasswordHash1[0],PasswordHash1[1],PasswordHash1[2],PasswordHash1[3],