package rfc4757 | |
import "encoding/binary" | |
// UsageToMSMsgType converts Kerberos key usage numbers to Microsoft message type encoded as a little-endian four byte slice. | |
func UsageToMSMsgType(usage uint32) []byte { | |
// Translate usage numbers to the Microsoft T numbers | |
switch usage { | |
case 3: | |
usage = 8 | |
case 9: | |
usage = 8 | |
case 23: | |
usage = 13 | |
} | |
// Now convert to bytes | |
tb := make([]byte, 4) // We force an int32 input so we can't go over 4 bytes | |
binary.PutUvarint(tb, uint64(usage)) | |
return tb | |
} |