1*d3273b5bSchristos /* $NetBSD: crypto-algs.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ 2ca1c9b0cSelric 3ca1c9b0cSelric /* 4ca1c9b0cSelric * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan 5ca1c9b0cSelric * (Royal Institute of Technology, Stockholm, Sweden). 6ca1c9b0cSelric * All rights reserved. 7ca1c9b0cSelric * 8ca1c9b0cSelric * Redistribution and use in source and binary forms, with or without 9ca1c9b0cSelric * modification, are permitted provided that the following conditions 10ca1c9b0cSelric * are met: 11ca1c9b0cSelric * 12ca1c9b0cSelric * 1. Redistributions of source code must retain the above copyright 13ca1c9b0cSelric * notice, this list of conditions and the following disclaimer. 14ca1c9b0cSelric * 15ca1c9b0cSelric * 2. Redistributions in binary form must reproduce the above copyright 16ca1c9b0cSelric * notice, this list of conditions and the following disclaimer in the 17ca1c9b0cSelric * documentation and/or other materials provided with the distribution. 18ca1c9b0cSelric * 19ca1c9b0cSelric * 3. Neither the name of the Institute nor the names of its contributors 20ca1c9b0cSelric * may be used to endorse or promote products derived from this software 21ca1c9b0cSelric * without specific prior written permission. 22ca1c9b0cSelric * 23ca1c9b0cSelric * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 24ca1c9b0cSelric * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25ca1c9b0cSelric * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26ca1c9b0cSelric * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 27ca1c9b0cSelric * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28ca1c9b0cSelric * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29ca1c9b0cSelric * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30ca1c9b0cSelric * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31ca1c9b0cSelric * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32ca1c9b0cSelric * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33ca1c9b0cSelric * SUCH DAMAGE. 34ca1c9b0cSelric */ 35ca1c9b0cSelric 36ca1c9b0cSelric #include "krb5_locl.h" 37ca1c9b0cSelric 38ca1c9b0cSelric #ifndef HEIMDAL_SMALLER 39ca1c9b0cSelric #define DES3_OLD_ENCTYPE 1 40ca1c9b0cSelric #endif 41ca1c9b0cSelric 42ca1c9b0cSelric struct _krb5_checksum_type *_krb5_checksum_types[] = { 43ca1c9b0cSelric &_krb5_checksum_none, 44ca1c9b0cSelric #ifdef HEIM_WEAK_CRYPTO 45ca1c9b0cSelric &_krb5_checksum_crc32, 46ca1c9b0cSelric &_krb5_checksum_rsa_md4, 47ca1c9b0cSelric &_krb5_checksum_rsa_md4_des, 48ca1c9b0cSelric &_krb5_checksum_rsa_md5_des, 49ca1c9b0cSelric #endif 50ca1c9b0cSelric #ifdef DES3_OLD_ENCTYPE 51ca1c9b0cSelric &_krb5_checksum_rsa_md5_des3, 52ca1c9b0cSelric #endif 53ca1c9b0cSelric &_krb5_checksum_rsa_md5, 54ca1c9b0cSelric &_krb5_checksum_sha1, 55ca1c9b0cSelric &_krb5_checksum_hmac_sha1_des3, 56ca1c9b0cSelric &_krb5_checksum_hmac_sha1_aes128, 57ca1c9b0cSelric &_krb5_checksum_hmac_sha1_aes256, 58b9d004c6Schristos &_krb5_checksum_hmac_sha256_128_aes128, 59b9d004c6Schristos &_krb5_checksum_hmac_sha384_192_aes256, 60ca1c9b0cSelric &_krb5_checksum_hmac_md5 61ca1c9b0cSelric }; 62ca1c9b0cSelric 63ca1c9b0cSelric int _krb5_num_checksums 64ca1c9b0cSelric = sizeof(_krb5_checksum_types) / sizeof(_krb5_checksum_types[0]); 65ca1c9b0cSelric 66ca1c9b0cSelric /* 67ca1c9b0cSelric * these should currently be in reverse preference order. 68ca1c9b0cSelric * (only relevant for !F_PSEUDO) */ 69ca1c9b0cSelric 70ca1c9b0cSelric struct _krb5_encryption_type *_krb5_etypes[] = { 71b9d004c6Schristos &_krb5_enctype_aes256_cts_hmac_sha384_192, 72b9d004c6Schristos &_krb5_enctype_aes128_cts_hmac_sha256_128, 73ca1c9b0cSelric &_krb5_enctype_aes256_cts_hmac_sha1, 74ca1c9b0cSelric &_krb5_enctype_aes128_cts_hmac_sha1, 75ca1c9b0cSelric &_krb5_enctype_des3_cbc_sha1, 76ca1c9b0cSelric &_krb5_enctype_des3_cbc_none, /* used by the gss-api mech */ 77ca1c9b0cSelric &_krb5_enctype_arcfour_hmac_md5, 78ca1c9b0cSelric #ifdef DES3_OLD_ENCTYPE 79ca1c9b0cSelric &_krb5_enctype_des3_cbc_md5, 80ca1c9b0cSelric &_krb5_enctype_old_des3_cbc_sha1, 81ca1c9b0cSelric #endif 82ca1c9b0cSelric #ifdef HEIM_WEAK_CRYPTO 83ca1c9b0cSelric &_krb5_enctype_des_cbc_md5, 84ca1c9b0cSelric &_krb5_enctype_des_cbc_md4, 85ca1c9b0cSelric &_krb5_enctype_des_cbc_crc, 86ca1c9b0cSelric &_krb5_enctype_des_cbc_none, 87ca1c9b0cSelric &_krb5_enctype_des_cfb64_none, 88ca1c9b0cSelric &_krb5_enctype_des_pcbc_none, 89ca1c9b0cSelric #endif 90ca1c9b0cSelric &_krb5_enctype_null 91ca1c9b0cSelric }; 92ca1c9b0cSelric 93ca1c9b0cSelric int _krb5_num_etypes = sizeof(_krb5_etypes) / sizeof(_krb5_etypes[0]); 94