github.com/hoffie/larasync@v0.0.0-20151025221940-0384d2bddcef/repository/keystore_test.go (about) 1 package repository 2 3 import ( 4 "github.com/agl/ed25519" 5 6 . "gopkg.in/check.v1" 7 8 "github.com/hoffie/larasync/repository/content" 9 ) 10 11 type KeyStoreTests struct { 12 dir string 13 storage *content.FileStorage 14 ks *KeyStore 15 } 16 17 var _ = Suite(&KeyStoreTests{}) 18 19 func (t *KeyStoreTests) SetUpTest(c *C) { 20 t.dir = c.MkDir() 21 t.storage = content.NewFileStorage(t.dir) 22 t.ks = NewKeyStore(t.storage) 23 } 24 25 func (t *KeyStoreTests) TestEncryptionKey(c *C) { 26 var k [EncryptionKeySize]byte 27 k[0] = 'z' 28 _, err := t.ks.EncryptionKey() 29 c.Assert(err, NotNil) 30 31 err = t.ks.SetEncryptionKey(k) 32 c.Assert(err, IsNil) 33 34 k2, err := t.ks.EncryptionKey() 35 c.Assert(err, IsNil) 36 c.Assert(k2, DeepEquals, k) 37 } 38 39 func (t *KeyStoreTests) TestSigningPrivkey(c *C) { 40 var k [PrivateKeySize]byte 41 k[0] = 'z' 42 _, err := t.ks.SigningPrivateKey() 43 c.Assert(err, NotNil) 44 45 err = t.ks.SetSigningPrivateKey(k) 46 c.Assert(err, IsNil) 47 48 k2, err := t.ks.SigningPrivateKey() 49 c.Assert(err, IsNil) 50 c.Assert(k2, DeepEquals, k) 51 } 52 53 func (t *KeyStoreTests) TestHashingKey(c *C) { 54 var k [HashingKeySize]byte 55 k[0] = 'z' 56 _, err := t.ks.HashingKey() 57 c.Assert(err, NotNil) 58 59 err = t.ks.SetHashingKey(k) 60 c.Assert(err, IsNil) 61 62 k2, err := t.ks.HashingKey() 63 c.Assert(err, IsNil) 64 c.Assert(k2, DeepEquals, k) 65 } 66 67 func (t *KeyStoreTests) TestCreateSigningKey(c *C) { 68 err := t.ks.CreateSigningKey() 69 c.Assert(err, IsNil) 70 71 key, err := t.ks.SigningPrivateKey() 72 c.Assert(err, IsNil) 73 c.Assert(len(key), Equals, PrivateKeySize) 74 } 75 76 func (t *KeyStoreTests) TestCreateSigningKeyTestEncryption(c *C) { 77 err := t.ks.CreateSigningKey() 78 c.Assert(err, IsNil) 79 80 priv, err := t.ks.SigningPrivateKey() 81 c.Assert(err, IsNil) 82 83 pub, err := t.ks.SigningPublicKey() 84 c.Assert(err, IsNil) 85 86 content := []byte("test") 87 sig := ed25519.Sign(&priv, content) 88 res := ed25519.Verify(&pub, content, sig) 89 c.Assert(res, Equals, true) 90 } 91 92 func (t *KeyStoreTests) TestCreateHashingKey(c *C) { 93 err := t.ks.CreateHashingKey() 94 c.Assert(err, IsNil) 95 96 key, err := t.ks.HashingKey() 97 c.Assert(err, IsNil) 98 c.Assert(len(key), Equals, HashingKeySize) 99 } 100 101 func (t *KeyStoreTests) TestCreateEncryptionKey(c *C) { 102 err := t.ks.CreateEncryptionKey() 103 c.Assert(err, IsNil) 104 105 key, err := t.ks.EncryptionKey() 106 c.Assert(err, IsNil) 107 c.Assert(len(key), Equals, EncryptionKeySize) 108 }