102 lines
3.7 KiB
Go
102 lines
3.7 KiB
Go
// 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
|
|
}
|