Various changes

-Aes -> AES
-doc.md
This commit is contained in:
Haris Khan
2024-10-06 10:45:26 -04:00
parent 684e89c957
commit 278bdee277
3 changed files with 83 additions and 18 deletions

View File

@@ -7,20 +7,20 @@ import (
"fmt"
)
// AesSymmetricKey represents a symmetric key for AES encryption/decryption
type AesSymmetricKey struct {
// AESSymmetricKey represents a symmetric key for AES encryption/decryption
type AESSymmetricKey struct {
Key []byte // AES key (must be 16, 24, or 32 bytes for AES-128, AES-192, AES-256)
IV []byte // Initialization Vector (must be 16 bytes for AES)
}
// AesSymmetricEncrypter implements the Encrypter interface using AES
type AesSymmetricEncrypter struct {
// AESSymmetricEncrypter implements the Encrypter interface using AES
type AESSymmetricEncrypter struct {
Key []byte
IV []byte
}
// Encrypt encrypts data using AES-CBC with PKCS#7 padding
func (e *AesSymmetricEncrypter) Encrypt(data []byte) ([]byte, error) {
func (e *AESSymmetricEncrypter) Encrypt(data []byte) ([]byte, error) {
block, err := aes.NewCipher(e.Key)
if err != nil {
return nil, err
@@ -33,14 +33,14 @@ func (e *AesSymmetricEncrypter) Encrypt(data []byte) ([]byte, error) {
return ciphertext, nil
}
// AesSymmetricDecrypter implements the Decrypter interface using AES
type AesSymmetricDecrypter struct {
// AESSymmetricDecrypter implements the Decrypter interface using AES
type AESSymmetricDecrypter struct {
Key []byte
IV []byte
}
// Decrypt decrypts data using AES-CBC with PKCS#7 padding
func (d *AesSymmetricDecrypter) Decrypt(data []byte) ([]byte, error) {
func (d *AESSymmetricDecrypter) Decrypt(data []byte) ([]byte, error) {
block, err := aes.NewCipher(d.Key)
if err != nil {
return nil, err
@@ -61,22 +61,22 @@ func (d *AesSymmetricDecrypter) Decrypt(data []byte) ([]byte, error) {
return plaintext, nil
}
// NewEncrypter creates a new AesSymmetricEncrypter
func (k *AesSymmetricKey) NewEncrypter() (Encrypter, error) {
return &AesSymmetricEncrypter{
// NewEncrypter creates a new AESSymmetricEncrypter
func (k *AESSymmetricKey) NewEncrypter() (Encrypter, error) {
return &AESSymmetricEncrypter{
Key: k.Key,
IV: k.IV,
}, nil
}
// Len returns the length of the key
func (k *AesSymmetricKey) Len() int {
func (k *AESSymmetricKey) Len() int {
return len(k.Key)
}
// NewDecrypter creates a new AesSymmetricDecrypter
func (k *AesSymmetricKey) NewDecrypter() (Decrypter, error) {
return &AesSymmetricDecrypter{
// NewDecrypter creates a new AESSymmetricDecrypter
func (k *AESSymmetricKey) NewDecrypter() (Decrypter, error) {
return &AESSymmetricDecrypter{
Key: k.Key,
IV: k.IV,
}, nil

View File

@@ -22,7 +22,7 @@ func TestAESEncryptDecrypt(t *testing.T) {
t.Fatalf("Failed to generate random IV: %v", err)
}
symmetricKey := AesSymmetricKey{
symmetricKey := AESSymmetricKey{
Key: key,
IV: iv,
}
@@ -82,7 +82,7 @@ func TestAESEncryptInvalidKey(t *testing.T) {
_, _ = rand.Read(iv)
for _, key := range invalidKeys {
symmetricKey := &AesSymmetricKey{
symmetricKey := &AESSymmetricKey{
Key: key,
IV: iv,
}
@@ -104,7 +104,7 @@ func TestAESDecryptInvalidInput(t *testing.T) {
_, _ = rand.Read(key)
_, _ = rand.Read(iv)
symmetricKey := &AesSymmetricKey{
symmetricKey := &AESSymmetricKey{
Key: key,
IV: iv,
}

View File

@@ -12,7 +12,72 @@ const (
OPAD = byte(0x5C)
)
```
#### type AESSymmetricKey
```go
type AESSymmetricKey struct {
Key []byte // AES key (must be 16, 24, or 32 bytes for AES-128, AES-192, AES-256)
IV []byte // Initialization Vector (must be 16 bytes for AES)
}
```
AESSymmetricKey represents a symmetric key for AES encryption/decryption
#### func (AESSymmetricKey) NewEncrypter
```go
func (k *AESSymmetricKey) NewEncrypter() (Encrypter, error)
```
NewEncrypter creates a new AESSymmetricEncrypter
#### func (AESSymmetricKey) NewDecrypter
```go
func (k *AESSymmetricKey) NewDecrypter() (Decrypter, error)
```
NewDecrypter creates a new AESSymmetricDecrypter
#### func (AESSymmetricKey) Len
```go
func (k *AESSymmetricKey) Len() int
```
Len returns the length of the key
#### type AESSymmetricEncrypter
```go
type AESSymmetricEncrypter struct {
Key []byte
IV []byte
}
```
AESSymmetricEncrypter implements the Encrypter interface using AES
#### func (*AESSymmetricEncrypter) Encrypt
```go
func (e *AESSymmetricEncrypter) Encrypt(data []byte) ([]byte, error)
```
Encrypt encrypts data using AES-CBC with PKCS#7 padding
#### type AESSymmetricDecrypter
```go
type AESSymmetricDecrypter struct {
Key []byte
IV []byte
}
```
AESSymmetricDecrypter implements the Decrypter interface using AES
#### func (*AESSymmetricDecrypter) Decrypt
```go
func (d *AESSymmetricDecrypter) Decrypt(data []byte) ([]byte, error)
```
Decrypt decrypts data using AES-CBC with PKCS#7 padding
```go
var (
ElgDecryptFail = errors.New("failed to decrypt elgamal encrypted data")