Files
herolib/lib/hero/crypt/age_test.v
2025-09-17 07:39:54 +02:00

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
// }