30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
// Package etype provides the Kerberos Encryption Type interface
|
|
package etype
|
|
|
|
import "hash"
|
|
|
|
// EType is the interface defining the Encryption Type.
|
|
type EType interface {
|
|
GetETypeID() int32
|
|
GetHashID() int32
|
|
GetKeyByteSize() int
|
|
GetKeySeedBitLength() int
|
|
GetDefaultStringToKeyParams() string
|
|
StringToKey(string, salt, s2kparams string) ([]byte, error)
|
|
RandomToKey(b []byte) []byte
|
|
GetHMACBitLength() int
|
|
GetMessageBlockByteSize() int
|
|
EncryptData(key, data []byte) ([]byte, []byte, error)
|
|
EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error)
|
|
DecryptData(key, data []byte) ([]byte, error)
|
|
DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error)
|
|
GetCypherBlockBitLength() int
|
|
GetConfounderByteSize() int
|
|
DeriveKey(protocolKey, usage []byte) ([]byte, error)
|
|
DeriveRandom(protocolKey, usage []byte) ([]byte, error)
|
|
VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool
|
|
GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error)
|
|
VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool
|
|
GetHashFunc() func() hash.Hash
|
|
}
|