Add Speck-128 implementation

This commit is contained in:
2025-05-19 02:11:38 +02:00
parent 18009f8754
commit c4d242fbb3
4 changed files with 281 additions and 0 deletions

20
cipher/cipher.go Normal file
View File

@ -0,0 +1,20 @@
package cipher
import "errors"
var ErrInvalidKeyLength = errors.New("Invalid key length")
// A Block represents an implementation of a block cipher using block cipher
// specific parameters.
type Block interface {
// Encrypt a source block into the destination. dst and src must be exactly
// block sized. Panics if blocks are not sized correctly.
Encrypt(dst, src []byte)
// Decrypt a source block into the destination. dst and src must be exactly
// block sized. Panics if blocks are not sized correctly.
Decrypt(dst, src []byte)
// BlockSize returns the blocksize in bytes
BlockSize() int
// Algorithm returns the name of the algorithm
Algorithm() string
}