crypto.c (102647) | crypto.c (103426) |
---|---|
1/* 2 * Copyright (c) 1997 - 2002 Kungliga Tekniska H�gskolan 3 * (Royal Institute of Technology, Stockholm, Sweden). 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34#include "krb5_locl.h" | 1/* 2 * Copyright (c) 1997 - 2002 Kungliga Tekniska H�gskolan 3 * (Royal Institute of Technology, Stockholm, Sweden). 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34#include "krb5_locl.h" |
35RCSID("$Id: crypto.c,v 1.64 2002/04/29 16:31:54 joda Exp $"); 36/* RCSID("$FreeBSD: head/crypto/heimdal/lib/krb5/crypto.c 102647 2002-08-30 21:25:14Z nectar $"); */ | 35RCSID("$Id: crypto.c,v 1.66 2002/09/03 19:58:15 joda Exp $"); 36/* RCSID("$FreeBSD: head/crypto/heimdal/lib/krb5/crypto.c 103426 2002-09-16 21:07:11Z nectar $"); */ |
37 38#undef CRYPTO_DEBUG 39#ifdef CRYPTO_DEBUG 40static void krb5_crypto_debug(krb5_context, int, size_t, krb5_keyblock*); 41#endif 42 43 44struct key_data { --- 1627 unchanged lines hidden (view full) --- 1672 1673static krb5_error_code 1674DES3_CBC_encrypt(krb5_context context, 1675 struct key_data *key, 1676 void *data, 1677 size_t len, 1678 krb5_boolean encrypt, 1679 int usage, | 37 38#undef CRYPTO_DEBUG 39#ifdef CRYPTO_DEBUG 40static void krb5_crypto_debug(krb5_context, int, size_t, krb5_keyblock*); 41#endif 42 43 44struct key_data { --- 1627 unchanged lines hidden (view full) --- 1672 1673static krb5_error_code 1674DES3_CBC_encrypt(krb5_context context, 1675 struct key_data *key, 1676 void *data, 1677 size_t len, 1678 krb5_boolean encrypt, 1679 int usage, |
1680 void *ignore_ivec) | 1680 void *ivec) |
1681{ | 1681{ |
1682 des_cblock ivec; | 1682 des_cblock local_ivec; |
1683 des_key_schedule *s = key->schedule->data; | 1683 des_key_schedule *s = key->schedule->data; |
1684 memset(&ivec, 0, sizeof(ivec)); 1685 des_ede3_cbc_encrypt(data, data, len, s[0], s[1], s[2], &ivec, encrypt); 1686 return 0; 1687} 1688 1689static krb5_error_code 1690DES3_CBC_encrypt_ivec(krb5_context context, 1691 struct key_data *key, 1692 void *data, 1693 size_t len, 1694 krb5_boolean encrypt, 1695 int usage, 1696 void *ivec) 1697{ 1698 des_key_schedule *s = key->schedule->data; 1699 | 1684 if(ivec == NULL) { 1685 ivec = &local_ivec; 1686 memset(local_ivec, 0, sizeof(local_ivec)); 1687 } |
1700 des_ede3_cbc_encrypt(data, data, len, s[0], s[1], s[2], ivec, encrypt); 1701 return 0; 1702} 1703 1704static krb5_error_code 1705DES_CFB64_encrypt_null_ivec(krb5_context context, 1706 struct key_data *key, 1707 void *data, --- 358 unchanged lines hidden (view full) --- 2066 8, 2067 0, 2068 &keytype_des3_derived, 2069 &checksum_none, 2070 NULL, 2071 F_PSEUDO, 2072 DES3_CBC_encrypt, 2073}; | 1688 des_ede3_cbc_encrypt(data, data, len, s[0], s[1], s[2], ivec, encrypt); 1689 return 0; 1690} 1691 1692static krb5_error_code 1693DES_CFB64_encrypt_null_ivec(krb5_context context, 1694 struct key_data *key, 1695 void *data, --- 358 unchanged lines hidden (view full) --- 2054 8, 2055 0, 2056 &keytype_des3_derived, 2057 &checksum_none, 2058 NULL, 2059 F_PSEUDO, 2060 DES3_CBC_encrypt, 2061}; |
2074static struct encryption_type enctype_des3_cbc_none_ivec = { 2075 ETYPE_DES3_CBC_NONE_IVEC, 2076 "des3-cbc-none-ivec", 2077 8, 2078 0, 2079 &keytype_des3_derived, 2080 &checksum_none, 2081 NULL, 2082 F_PSEUDO, 2083 DES3_CBC_encrypt_ivec, 2084}; | |
2085 2086static struct encryption_type *etypes[] = { 2087 &enctype_null, 2088 &enctype_des_cbc_crc, 2089 &enctype_des_cbc_md4, 2090 &enctype_des_cbc_md5, 2091 &enctype_arcfour_hmac_md5, 2092 &enctype_des3_cbc_md5, 2093 &enctype_des3_cbc_sha1, 2094 &enctype_old_des3_cbc_sha1, 2095 &enctype_des_cbc_none, 2096 &enctype_des_cfb64_none, 2097 &enctype_des_pcbc_none, | 2062 2063static struct encryption_type *etypes[] = { 2064 &enctype_null, 2065 &enctype_des_cbc_crc, 2066 &enctype_des_cbc_md4, 2067 &enctype_des_cbc_md5, 2068 &enctype_arcfour_hmac_md5, 2069 &enctype_des3_cbc_md5, 2070 &enctype_des3_cbc_sha1, 2071 &enctype_old_des3_cbc_sha1, 2072 &enctype_des_cbc_none, 2073 &enctype_des_cfb64_none, 2074 &enctype_des_pcbc_none, |
2098 &enctype_des3_cbc_none, 2099 &enctype_des3_cbc_none_ivec | 2075 &enctype_des3_cbc_none |
2100}; 2101 2102static unsigned num_etypes = sizeof(etypes) / sizeof(etypes[0]); 2103 2104 2105static struct encryption_type * 2106_find_enctype(krb5_enctype type) 2107{ --- 945 unchanged lines hidden (view full) --- 3053 free_key_usage(context, &crypto->key_usage[i]); 3054 free(crypto->key_usage); 3055 free_key_data(context, &crypto->key); 3056 free (crypto); 3057 return 0; 3058} 3059 3060krb5_error_code | 2076}; 2077 2078static unsigned num_etypes = sizeof(etypes) / sizeof(etypes[0]); 2079 2080 2081static struct encryption_type * 2082_find_enctype(krb5_enctype type) 2083{ --- 945 unchanged lines hidden (view full) --- 3029 free_key_usage(context, &crypto->key_usage[i]); 3030 free(crypto->key_usage); 3031 free_key_data(context, &crypto->key); 3032 free (crypto); 3033 return 0; 3034} 3035 3036krb5_error_code |
3037krb5_crypto_getblocksize(krb5_context context, 3038 krb5_crypto crypto, 3039 size_t *blocksize) 3040{ 3041 *blocksize = crypto->et->blocksize; 3042 return 0; 3043} 3044 3045krb5_error_code |
|
3061krb5_string_to_key_derived(krb5_context context, 3062 const void *str, 3063 size_t len, 3064 krb5_enctype etype, 3065 krb5_keyblock *key) 3066{ 3067 struct encryption_type *et = _find_enctype(etype); 3068 krb5_error_code ret; --- 187 unchanged lines hidden --- | 3046krb5_string_to_key_derived(krb5_context context, 3047 const void *str, 3048 size_t len, 3049 krb5_enctype etype, 3050 krb5_keyblock *key) 3051{ 3052 struct encryption_type *et = _find_enctype(etype); 3053 krb5_error_code ret; --- 187 unchanged lines hidden --- |