...
1 package edgeencrypt
2
3 import (
4 "crypto/rand"
5 "crypto/rsa"
6 "testing"
7
8 "github.com/golang-jwt/jwt"
9 )
10
11 func TestRSAKeys(t *testing.T) {
12 privateKey, err := rsa.GenerateKey(rand.Reader, RSA2048)
13 if err != nil {
14 t.Fatalf("failed to generate private key: %v", err)
15 }
16 publicKey := &privateKey.PublicKey
17
18 pkString := ConvertRSAPrivateKeyToPEM(privateKey)
19
20 pubKeyString, err := ConvertRSAPublicKeyToPEM(publicKey)
21 if err != nil {
22 t.Fatalf("failed to convert public key to pem: %v", err)
23 }
24
25 pk, err := jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString))
26 if err != nil {
27 t.Fatalf("failed to parse private key from pem: %v", err)
28 }
29 if pk.D.Cmp(privateKey.D) != 0 {
30 t.Fatalf("private keys do not match")
31 }
32
33 pubKey, err := jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString))
34 if err != nil {
35 t.Fatalf("failed to parse public key from pem: %v", err)
36 }
37 if pubKey.N.Cmp(publicKey.N) != 0 {
38 t.Fatalf("public keys do not match")
39 }
40 }
41
42 func TestValidRandomRSAKeys(t *testing.T) {
43 pkString, pubKeyString, err := GenerateRandomRSAKeyPair()
44 if err != nil {
45 t.Fatalf("failed to generate random RSA key pair: %v", err)
46 }
47
48 _, err = jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString))
49 if err != nil {
50 t.Fatalf("failed to parse private key from pem: %v", err)
51 }
52
53 _, err = jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString))
54 if err != nil {
55 t.Fatalf("failed to parse public key from pem: %v", err)
56 }
57 }
58
View as plain text