gpgme 0.11.0

GPGme bindings for Rust
Documentation
use gpgme;

#[macro_use]
mod common;

test_case! {
    test_key_list(test) {
        let mut ctx = test.create_context();
        let keys: Vec<_> = ctx.find_keys(Some("alfa@example.net")).unwrap()
                                        .collect::<Result<_, _>>().unwrap();
        assert_eq!(keys.len(), 1, "incorrect number of keys");

        let key = &keys[0];
        assert_eq!(key.id(), Ok("2D727CC768697734"));
        assert_eq!(key.subkeys().count(), 2);
        let subkeys: Vec<_> = key.subkeys().collect();
        assert_eq!(subkeys[0].algorithm(), gpgme::KeyAlgorithm::Dsa);
        assert_eq!(subkeys[1].algorithm(), gpgme::KeyAlgorithm::ElgamalEncrypt);
    }
}