// Package etypeID provides Kerberos 5 encryption type assigned numbers. package etypeID // Kerberos encryption type assigned numbers. const ( //RESERVED : 0 DES_CBC_CRC int32 = 1 DES_CBC_MD4 int32 = 2 DES_CBC_MD5 int32 = 3 DES_CBC_RAW int32 = 4 DES3_CBC_MD5 int32 = 5 DES3_CBC_RAW int32 = 6 DES3_CBC_SHA1 int32 = 7 DES_HMAC_SHA1 int32 = 8 DSAWITHSHA1_CMSOID int32 = 9 MD5WITHRSAENCRYPTION_CMSOID int32 = 10 SHA1WITHRSAENCRYPTION_CMSOID int32 = 11 RC2CBC_ENVOID int32 = 12 RSAENCRYPTION_ENVOID int32 = 13 RSAES_OAEP_ENV_OID int32 = 14 DES_EDE3_CBC_ENV_OID int32 = 15 DES3_CBC_SHA1_KD int32 = 16 AES128_CTS_HMAC_SHA1_96 int32 = 17 AES256_CTS_HMAC_SHA1_96 int32 = 18 AES128_CTS_HMAC_SHA256_128 int32 = 19 AES256_CTS_HMAC_SHA384_192 int32 = 20 //UNASSIGNED : 21-22 RC4_HMAC int32 = 23 RC4_HMAC_EXP int32 = 24 CAMELLIA128_CTS_CMAC int32 = 25 CAMELLIA256_CTS_CMAC int32 = 26 //UNASSIGNED : 27-64 SUBKEY_KEYMATERIAL int32 = 65 //UNASSIGNED : 66-2147483647 ) // ETypesByName is a map of EncType names to their assigned EncType number. var ETypesByName = map[string]int32{ "des-cbc-crc": DES_CBC_CRC, "des-cbc-md4": DES_CBC_MD4, "des-cbc-md5": DES_CBC_MD5, "des-cbc-raw": DES_CBC_RAW, "des3-cbc-md5": DES3_CBC_MD5, "des3-cbc-raw": DES3_CBC_RAW, "des3-cbc-sha1": DES3_CBC_SHA1, "des3-hmac-sha1": DES_HMAC_SHA1, "des3-cbc-sha1-kd": DES3_CBC_SHA1_KD, "des-hmac-sha1": DES_HMAC_SHA1, "dsaWithSHA1-CmsOID": DSAWITHSHA1_CMSOID, "md5WithRSAEncryption-CmsOID": MD5WITHRSAENCRYPTION_CMSOID, "sha1WithRSAEncryption-CmsOID": SHA1WITHRSAENCRYPTION_CMSOID, "rc2CBC-EnvOID": RC2CBC_ENVOID, "rsaEncryption-EnvOID": RSAENCRYPTION_ENVOID, "rsaES-OAEP-ENV-OID": RSAES_OAEP_ENV_OID, "des-ede3-cbc-Env-OID": DES_EDE3_CBC_ENV_OID, "aes128-cts-hmac-sha1-96": AES128_CTS_HMAC_SHA1_96, "aes128-cts": AES128_CTS_HMAC_SHA1_96, "aes128-sha1": AES128_CTS_HMAC_SHA1_96, "aes256-cts-hmac-sha1-96": AES256_CTS_HMAC_SHA1_96, "aes256-cts": AES256_CTS_HMAC_SHA1_96, "aes256-sha1": AES256_CTS_HMAC_SHA1_96, "aes128-cts-hmac-sha256-128": AES128_CTS_HMAC_SHA256_128, "aes128-sha2": AES128_CTS_HMAC_SHA256_128, "aes256-cts-hmac-sha384-192": AES256_CTS_HMAC_SHA384_192, "aes256-sha2": AES256_CTS_HMAC_SHA384_192, "arcfour-hmac": RC4_HMAC, "rc4-hmac": RC4_HMAC, "arcfour-hmac-md5": RC4_HMAC, "arcfour-hmac-exp": RC4_HMAC_EXP, "rc4-hmac-exp": RC4_HMAC_EXP, "arcfour-hmac-md5-exp": RC4_HMAC_EXP, "camellia128-cts-cmac": CAMELLIA128_CTS_CMAC, "camellia128-cts": CAMELLIA128_CTS_CMAC, "camellia256-cts-cmac": CAMELLIA256_CTS_CMAC, "camellia256-cts": CAMELLIA256_CTS_CMAC, "subkey-keymaterial": SUBKEY_KEYMATERIAL, } // EtypeSupported resolves the etype name string to the etype ID. // If zero is returned the etype is not supported by gokrb5. func EtypeSupported(etype string) int32 { // Slice of supported enctype IDs s := []int32{ AES128_CTS_HMAC_SHA1_96, AES256_CTS_HMAC_SHA1_96, AES128_CTS_HMAC_SHA256_128, AES256_CTS_HMAC_SHA384_192, DES3_CBC_SHA1_KD, RC4_HMAC, } id := ETypesByName[etype] if id == 0 { return id } for _, sid := range s { if id == sid { return id } } return 0 }