* Refactor library, remove duplicates * Rebuild structure to use Messages and Signature models * Use PGPSplitMessage * Remove signature model * Various fixes * Add helpers with tests * Fixes, add some docs, add tests * Add attachment helpers * Add helpers Symmetric encryption * Edit docs + examples * Rename kr to keyRing * Various fixes for documentation * Edit JSON handling functions, add decrypt keyring via token * Add proposal changes doc * Fix CI * Drop *Message functions, join CleartextMessage and BinaryMessage * Change canonicalization and trimming only to text signatures * Add cleartextsignature, detach signature from message model, move helpers * Documentation, remove optional parameters * Move verification to separate model * Don't return message in VerifyDetached * Update table of contents in readme * Appease golint * Run go fmt * Rename Encrypt/DecryptMessageWithPassword to ..WithToken These functions shouldn't be used with user-provided passwords, as they don't do any key-stretching. * Change key generation usernames
31 lines
1.1 KiB
Go
31 lines
1.1 KiB
Go
package subtle
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestSubtle_EncryptWithoutIntegrity(t *testing.T) {
|
|
key, _ := hex.DecodeString("9469cccfc8a8d005247f39fa3e5b35a97db456cecf18deac6d84364d0818d763")
|
|
plaintext := []byte("some plaintext")
|
|
iv, _ := hex.DecodeString("c828f258a76aad7bc828f258a76aad7b")
|
|
|
|
ciphertext, _ := EncryptWithoutIntegrity(key, plaintext, iv)
|
|
assert.Exactly(t, "14697192f7e112fc88d83380693f", hex.EncodeToString(ciphertext))
|
|
}
|
|
|
|
func TestSubtle_DecryptWithoutIntegrity(t *testing.T) {
|
|
key, _ := hex.DecodeString("9469cccfc8a8d005247f39fa3e5b35a97db456cecf18deac6d84364d0818d763")
|
|
ciphertext, _ := hex.DecodeString("14697192f7e112fc88d83380693f")
|
|
iv, _ := hex.DecodeString("c828f258a76aad7bc828f258a76aad7b")
|
|
|
|
plaintext, _ := DecryptWithoutIntegrity(key, ciphertext, iv)
|
|
assert.Exactly(t, "some plaintext", string(plaintext))
|
|
}
|
|
|
|
func TestSubtle_DeriveKey(t *testing.T) {
|
|
salt, _ := hex.DecodeString("c828f258a76aad7b")
|
|
dk, _ := DeriveKey("some password", salt, 32768)
|
|
assert.Exactly(t, "9469cccfc8a8d005247f39fa3e5b35a97db456cecf18deac6d84364d0818d763", hex.EncodeToString(dk))
|
|
}
|