Deleted Added
full compact
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 ---