@@ -27,7 +27,7 @@ func TestEncryptDecrypt(t *testing.T) {
2727 keyName := func (keyType keystore.KeyType , index int ) string {
2828 return fmt .Sprintf ("key-%s-%d" , keyType , index )
2929 }
30- for _ , keyType := range keystore .AllEncryptionKeyTypes {
30+ for _ , keyType := range keystore .AllKeyTypes {
3131 keys , err := ks .CreateKeys (ctx , keystore.CreateKeysRequest {
3232 Keys : []keystore.CreateKeyRequest {
3333 {KeyName : keyName (keyType , 0 ), KeyType : keyType },
@@ -45,18 +45,43 @@ func TestEncryptDecrypt(t *testing.T) {
4545 }{keyType : keys .Keys [1 ].KeyInfo .KeyType , publicKey : keys .Keys [1 ].KeyInfo .PublicKey }
4646 }
4747
48- var tt = []struct {
48+ var tt []struct {
4949 name string
5050 fromKey string
5151 toKey string
5252 expectedError error
53- }{
54- {name : "Encrypt to self x25519" , fromKey : keyName (keystore .X25519 , 0 ), toKey : keyName (keystore .X25519 , 0 ), expectedError : nil },
55- {name : "Encrypt to other x25519" , fromKey : keyName (keystore .X25519 , 0 ), toKey : keyName (keystore .X25519 , 1 ), expectedError : nil },
56- {name : "Encrypt to self ecdh-p256" , fromKey : keyName (keystore .ECDH_P256 , 0 ), toKey : keyName (keystore .ECDH_P256 , 0 ), expectedError : nil },
57- {name : "Encrypt to other ecdh-p256" , fromKey : keyName (keystore .ECDH_P256 , 0 ), toKey : keyName (keystore .ECDH_P256 , 1 ), expectedError : nil },
58- {name : "Encrypt x25519 to ecdh-p256 should fail" , fromKey : keyName (keystore .X25519 , 0 ), toKey : keyName (keystore .ECDH_P256 , 0 ), expectedError : keystore .ErrEncryptionFailed },
59- {name : "Encrypt ecdh-p256 to x25519 should fail" , fromKey : keyName (keystore .ECDH_P256 , 0 ), toKey : keyName (keystore .X25519 , 0 ), expectedError : keystore .ErrEncryptionFailed },
53+ }
54+
55+ for _ , fromType := range keystore .AllKeyTypes {
56+ for _ , toType := range keystore .AllKeyTypes {
57+ // Test both same key (index 0) and different key (index 1) scenarios
58+ for keyIndex := 0 ; keyIndex < 2 ; keyIndex ++ {
59+ testName := fmt .Sprintf ("Encrypt %s to %s (key %d)" , fromType , toType , keyIndex )
60+ fromKey := keyName (fromType , 0 ) // Always use key 0 as source
61+ toKey := keyName (toType , keyIndex )
62+
63+ var expectedError error
64+ if fromType == toType && fromType .IsEncryptionKeyType () {
65+ // Same key types should succeed
66+ expectedError = nil
67+ } else {
68+ // Different key types or non-encryption key types should fail
69+ expectedError = keystore .ErrEncryptionFailed
70+ }
71+
72+ tt = append (tt , struct {
73+ name string
74+ fromKey string
75+ toKey string
76+ expectedError error
77+ }{
78+ name : testName ,
79+ fromKey : fromKey ,
80+ toKey : toKey ,
81+ expectedError : expectedError ,
82+ })
83+ }
84+ }
6085 }
6186 for _ , tt := range tt {
6287 t .Run (tt .name , func (t * testing.T ) {
0 commit comments