82 lines
2.0 KiB
V
82 lines
2.0 KiB
V
module crypt
|
|
|
|
fn test_stateless_encryption() {
|
|
mut client := new_age_client()!
|
|
|
|
// Generate a keypair
|
|
keypair := client.generate_keypair()!
|
|
|
|
// Encrypt a message
|
|
message := 'Hello, AGE encryption!'
|
|
encrypted := client.encrypt(keypair.recipient, message)!
|
|
|
|
// Decrypt the message
|
|
decrypted := client.decrypt(keypair.identity, encrypted.ciphertext)!
|
|
|
|
assert decrypted == message
|
|
}
|
|
|
|
fn test_stateless_signing() {
|
|
mut client := new_age_client()!
|
|
|
|
// Generate a signing keypair
|
|
keypair := client.generate_signing_keypair()!
|
|
|
|
// Sign a message
|
|
message := 'This message is signed'
|
|
signed := client.sign(keypair.sign_key, message)!
|
|
|
|
// Verify the signature
|
|
verified := client.verify(keypair.verify_key, message, signed.signature)!
|
|
|
|
assert verified == true
|
|
}
|
|
|
|
fn test_key_managed_encryption() {
|
|
mut client := new_age_client()!
|
|
|
|
// Create a named keypair
|
|
key_name := 'test_encryption_key'
|
|
client.create_named_keypair(key_name)!
|
|
|
|
// Encrypt with the named key
|
|
message := 'Hello, key-managed encryption!'
|
|
encrypted := client.encrypt_with_named_key(key_name, message)!
|
|
|
|
// Decrypt with the named key
|
|
decrypted := client.decrypt_with_named_key(key_name, encrypted.ciphertext)!
|
|
|
|
assert decrypted == message
|
|
}
|
|
|
|
fn test_key_managed_signing() {
|
|
mut client := new_age_client()!
|
|
|
|
// Create a named signing keypair
|
|
key_name := 'test_signing_key'
|
|
client.create_named_signing_keypair(key_name)!
|
|
|
|
// Sign with the named key
|
|
message := 'This message is signed with a named key'
|
|
signed := client.sign_with_named_key(key_name, message)!
|
|
|
|
// Verify with the named key
|
|
verified := client.verify_with_named_key(key_name, message, signed.signature)!
|
|
|
|
assert verified == true
|
|
}
|
|
|
|
// fn test_list_keys() {
|
|
// mut client := new_age_client()!
|
|
|
|
// // Create some named keys
|
|
// client.create_named_keypair('list_test_key1')!
|
|
// client.create_named_signing_keypair('list_test_key2')!
|
|
|
|
// // List the keys
|
|
// keys := client.list_keys()!
|
|
|
|
// assert 'list_test_key1' in keys
|
|
// assert 'list_test_key2' in keys
|
|
// }
|