memcpy(k, data, key->keyvalue.length);
DES_set_odd_parity(k);
if(DES_is_weak_key(k))
- _krb5_xor(k, (const unsigned char*)"\0\0\0\0\0\0\0\xf0");
+ _krb5_xor8(*k, (const unsigned char*)"\0\0\0\0\0\0\0\xf0");
}
static struct _krb5_key_type keytype_des_old = {
static krb5_error_code
CRC32_checksum(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *C)
{
- uint32_t crc;
+ uint32_t crc = 0;
unsigned char *r = C->checksum.data;
+ int i;
+
_krb5_crc_init_table ();
- crc = _krb5_crc_update (data, len, 0);
+
+ for (i = 0; i < niov; i++) {
+ if (_krb5_crypto_iov_should_sign(&iov[i]))
+ crc = _krb5_crc_update(iov[i].data.data, iov[i].data.length, crc);
+ }
+
r[0] = crc & 0xff;
r[1] = (crc >> 8) & 0xff;
r[2] = (crc >> 16) & 0xff;
static krb5_error_code
RSA_MD4_checksum(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *C)
{
- if (EVP_Digest(data, len, C->checksum.data, NULL, EVP_md4(), NULL) != 1)
+ if (_krb5_evp_digest_iov(crypto, iov, niov, C->checksum.data,
+ NULL, EVP_md4(), NULL) != 1)
krb5_abortx(context, "md4 checksum failed");
return 0;
}
static krb5_error_code
RSA_MD4_DES_checksum(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *cksum)
{
- return _krb5_des_checksum(context, EVP_md4(), key, data, len, cksum);
+ return _krb5_des_checksum(context, EVP_md4(), key, iov, niov, cksum);
}
static krb5_error_code
RSA_MD4_DES_verify(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *C)
{
- return _krb5_des_verify(context, EVP_md4(), key, data, len, C);
+ return _krb5_des_verify(context, EVP_md4(), key, iov, niov, C);
}
static krb5_error_code
RSA_MD5_DES_checksum(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *C)
{
- return _krb5_des_checksum(context, EVP_md5(), key, data, len, C);
+ return _krb5_des_checksum(context, EVP_md5(), key, iov, niov, C);
}
static krb5_error_code
RSA_MD5_DES_verify(krb5_context context,
+ krb5_crypto crypto,
struct _krb5_key_data *key,
- const void *data,
- size_t len,
unsigned usage,
+ const struct krb5_crypto_iov *iov,
+ int niov,
Checksum *C)
{
- return _krb5_des_verify(context, EVP_md5(), key, data, len, C);
+ return _krb5_des_verify(context, EVP_md5(), key, iov, niov, C);
}
struct _krb5_checksum_type _krb5_checksum_crc32 = {
struct _krb5_encryption_type _krb5_enctype_des_cbc_crc = {
ETYPE_DES_CBC_CRC,
"des-cbc-crc",
+ NULL,
8,
8,
8,
&keytype_des,
&_krb5_checksum_crc32,
NULL,
- F_DISABLED|F_WEAK,
+ F_DISABLED|F_WEAK|F_OLD,
evp_des_encrypt_key_ivec,
+ NULL,
0,
NULL
};
struct _krb5_encryption_type _krb5_enctype_des_cbc_md4 = {
ETYPE_DES_CBC_MD4,
"des-cbc-md4",
+ NULL,
8,
8,
8,
&keytype_des,
&_krb5_checksum_rsa_md4,
&_krb5_checksum_rsa_md4_des,
- F_DISABLED|F_WEAK,
+ F_DISABLED|F_WEAK|F_OLD,
evp_des_encrypt_null_ivec,
+ NULL,
0,
NULL
};
struct _krb5_encryption_type _krb5_enctype_des_cbc_md5 = {
ETYPE_DES_CBC_MD5,
"des-cbc-md5",
+ NULL,
8,
8,
8,
&keytype_des,
&_krb5_checksum_rsa_md5,
&_krb5_checksum_rsa_md5_des,
- F_DISABLED|F_WEAK,
+ F_DISABLED|F_WEAK|F_OLD,
evp_des_encrypt_null_ivec,
+ NULL,
0,
NULL
};
struct _krb5_encryption_type _krb5_enctype_des_cbc_none = {
ETYPE_DES_CBC_NONE,
"des-cbc-none",
+ NULL,
8,
8,
0,
&keytype_des,
&_krb5_checksum_none,
NULL,
- F_PSEUDO|F_DISABLED|F_WEAK,
+ F_PSEUDO|F_DISABLED|F_WEAK|F_OLD,
evp_des_encrypt_null_ivec,
+ NULL,
0,
NULL
};
struct _krb5_encryption_type _krb5_enctype_des_cfb64_none = {
ETYPE_DES_CFB64_NONE,
"des-cfb64-none",
+ NULL,
1,
1,
0,
&keytype_des_old,
&_krb5_checksum_none,
NULL,
- F_PSEUDO|F_DISABLED|F_WEAK,
+ F_PSEUDO|F_DISABLED|F_WEAK|F_OLD,
DES_CFB64_encrypt_null_ivec,
+ NULL,
0,
NULL
};
struct _krb5_encryption_type _krb5_enctype_des_pcbc_none = {
ETYPE_DES_PCBC_NONE,
"des-pcbc-none",
+ NULL,
8,
8,
0,
&keytype_des_old,
&_krb5_checksum_none,
NULL,
- F_PSEUDO|F_DISABLED|F_WEAK,
+ F_PSEUDO|F_DISABLED|F_WEAK|F_OLD,
DES_PCBC_encrypt_key_ivec,
+ NULL,
0,
NULL
};