...
1
2
3
4 package ecc
5
6 import (
7 "crypto/rand"
8 "testing"
9 )
10
11
12
13
14
15
16 func TestGenerateMaskedPrivateKeyX25519(t *testing.T) {
17 c := NewCurve25519()
18 _, secret, err := c.GenerateECDH(rand.Reader)
19 if err != nil {
20 t.Fatal(err)
21 }
22
23 encoded := c.MarshalByteSecret(secret)
24 decoded := c.UnmarshalByteSecret(encoded)
25 if decoded == nil {
26 t.Fatal(err)
27 }
28
29
30
31 if decoded[0]<<5 != 0 {
32 t.Fatalf("Priv. key is not masked (3 lsb should be unset): %X", decoded)
33 }
34
35 if decoded[31]>>7 != 0 {
36 t.Fatalf("Priv. key is not masked (MSB should be unset): %X", decoded)
37 }
38
39 if decoded[31]>>6 != 1 {
40 t.Fatalf("Priv. key is not masked (second MSB should be set): %X", decoded)
41 }
42 }
43
View as plain text