1package oaep 2 3import ( 4 "bytes" 5 "crypto/rand" 6 "crypto/rsa" 7 "testing" 8 9 "github.com/ssh-vault/crypto" 10) 11 12func TestOAEP(t *testing.T) { 13 privateKey, err := rsa.GenerateKey(rand.Reader, 2048) 14 if err != nil { 15 t.Error(err) 16 } 17 publicKey := &privateKey.PublicKey 18 message := []byte("The quick brown fox jumps over the lazy dog") 19 20 ciphertext, err := Encrypt(publicKey, message, []byte("")) 21 if err != nil { 22 t.Error(err) 23 } 24 25 plaintext, err := Decrypt(privateKey, ciphertext, []byte("")) 26 if err != nil { 27 t.Error(err) 28 } 29 30 if !bytes.Equal(message, plaintext) { 31 t.Error("message != plaintext") 32 } 33} 34 35func TestOAEPLabel(t *testing.T) { 36 privateKey, err := rsa.GenerateKey(rand.Reader, 2048) 37 if err != nil { 38 t.Error(err) 39 } 40 publicKey := &privateKey.PublicKey 41 message := []byte("The quick brown fox jumps over the lazy dog") 42 43 label, err := crypto.GenerateNonce(64) 44 if err != nil { 45 t.Error(err) 46 } 47 48 ciphertext, err := Encrypt(publicKey, message, label) 49 if err != nil { 50 t.Error(err) 51 } 52 53 plaintext, err := Decrypt(privateKey, ciphertext, label) 54 if err != nil { 55 t.Error(err) 56 } 57 58 if !bytes.Equal(message, plaintext) { 59 t.Error("message != plaintext") 60 } 61} 62