Various changes
-Aes -> AES -doc.md
This commit is contained in:
@@ -7,20 +7,20 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AesSymmetricKey represents a symmetric key for AES encryption/decryption
|
// AESSymmetricKey represents a symmetric key for AES encryption/decryption
|
||||||
type AesSymmetricKey struct {
|
type AESSymmetricKey struct {
|
||||||
Key []byte // AES key (must be 16, 24, or 32 bytes for AES-128, AES-192, AES-256)
|
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)
|
IV []byte // Initialization Vector (must be 16 bytes for AES)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AesSymmetricEncrypter implements the Encrypter interface using AES
|
// AESSymmetricEncrypter implements the Encrypter interface using AES
|
||||||
type AesSymmetricEncrypter struct {
|
type AESSymmetricEncrypter struct {
|
||||||
Key []byte
|
Key []byte
|
||||||
IV []byte
|
IV []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
// Encrypt encrypts data using AES-CBC with PKCS#7 padding
|
// 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)
|
block, err := aes.NewCipher(e.Key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -33,14 +33,14 @@ func (e *AesSymmetricEncrypter) Encrypt(data []byte) ([]byte, error) {
|
|||||||
return ciphertext, nil
|
return ciphertext, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AesSymmetricDecrypter implements the Decrypter interface using AES
|
// AESSymmetricDecrypter implements the Decrypter interface using AES
|
||||||
type AesSymmetricDecrypter struct {
|
type AESSymmetricDecrypter struct {
|
||||||
Key []byte
|
Key []byte
|
||||||
IV []byte
|
IV []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
// Decrypt decrypts data using AES-CBC with PKCS#7 padding
|
// 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)
|
block, err := aes.NewCipher(d.Key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -61,22 +61,22 @@ func (d *AesSymmetricDecrypter) Decrypt(data []byte) ([]byte, error) {
|
|||||||
return plaintext, nil
|
return plaintext, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEncrypter creates a new AesSymmetricEncrypter
|
// NewEncrypter creates a new AESSymmetricEncrypter
|
||||||
func (k *AesSymmetricKey) NewEncrypter() (Encrypter, error) {
|
func (k *AESSymmetricKey) NewEncrypter() (Encrypter, error) {
|
||||||
return &AesSymmetricEncrypter{
|
return &AESSymmetricEncrypter{
|
||||||
Key: k.Key,
|
Key: k.Key,
|
||||||
IV: k.IV,
|
IV: k.IV,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Len returns the length of the key
|
// Len returns the length of the key
|
||||||
func (k *AesSymmetricKey) Len() int {
|
func (k *AESSymmetricKey) Len() int {
|
||||||
return len(k.Key)
|
return len(k.Key)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDecrypter creates a new AesSymmetricDecrypter
|
// NewDecrypter creates a new AESSymmetricDecrypter
|
||||||
func (k *AesSymmetricKey) NewDecrypter() (Decrypter, error) {
|
func (k *AESSymmetricKey) NewDecrypter() (Decrypter, error) {
|
||||||
return &AesSymmetricDecrypter{
|
return &AESSymmetricDecrypter{
|
||||||
Key: k.Key,
|
Key: k.Key,
|
||||||
IV: k.IV,
|
IV: k.IV,
|
||||||
}, nil
|
}, nil
|
||||||
|
@@ -22,7 +22,7 @@ func TestAESEncryptDecrypt(t *testing.T) {
|
|||||||
t.Fatalf("Failed to generate random IV: %v", err)
|
t.Fatalf("Failed to generate random IV: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
symmetricKey := AesSymmetricKey{
|
symmetricKey := AESSymmetricKey{
|
||||||
Key: key,
|
Key: key,
|
||||||
IV: iv,
|
IV: iv,
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,7 @@ func TestAESEncryptInvalidKey(t *testing.T) {
|
|||||||
_, _ = rand.Read(iv)
|
_, _ = rand.Read(iv)
|
||||||
|
|
||||||
for _, key := range invalidKeys {
|
for _, key := range invalidKeys {
|
||||||
symmetricKey := &AesSymmetricKey{
|
symmetricKey := &AESSymmetricKey{
|
||||||
Key: key,
|
Key: key,
|
||||||
IV: iv,
|
IV: iv,
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ func TestAESDecryptInvalidInput(t *testing.T) {
|
|||||||
_, _ = rand.Read(key)
|
_, _ = rand.Read(key)
|
||||||
_, _ = rand.Read(iv)
|
_, _ = rand.Read(iv)
|
||||||
|
|
||||||
symmetricKey := &AesSymmetricKey{
|
symmetricKey := &AESSymmetricKey{
|
||||||
Key: key,
|
Key: key,
|
||||||
IV: iv,
|
IV: iv,
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,72 @@ const (
|
|||||||
OPAD = byte(0x5C)
|
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
|
```go
|
||||||
var (
|
var (
|
||||||
ElgDecryptFail = errors.New("failed to decrypt elgamal encrypted data")
|
ElgDecryptFail = errors.New("failed to decrypt elgamal encrypted data")
|
||||||
|
Reference in New Issue
Block a user