github.com/jcmturner/gokrb5/v8@v8.4.4/crypto/etype/etype.go (about)

     1  // Package etype provides the Kerberos Encryption Type interface
     2  package etype
     3  
     4  import "hash"
     5  
     6  // EType is the interface defining the Encryption Type.
     7  type EType interface {
     8  	GetETypeID() int32
     9  	GetHashID() int32
    10  	GetKeyByteSize() int
    11  	GetKeySeedBitLength() int
    12  	GetDefaultStringToKeyParams() string
    13  	StringToKey(string, salt, s2kparams string) ([]byte, error)
    14  	RandomToKey(b []byte) []byte
    15  	GetHMACBitLength() int
    16  	GetMessageBlockByteSize() int
    17  	EncryptData(key, data []byte) ([]byte, []byte, error)
    18  	EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error)
    19  	DecryptData(key, data []byte) ([]byte, error)
    20  	DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error)
    21  	GetCypherBlockBitLength() int
    22  	GetConfounderByteSize() int
    23  	DeriveKey(protocolKey, usage []byte) ([]byte, error)
    24  	DeriveRandom(protocolKey, usage []byte) ([]byte, error)
    25  	VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool
    26  	GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error)
    27  	VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool
    28  	GetHashFunc() func() hash.Hash
    29  }