1 #include "pEp_internal.h"
7 #include "pgp_netpgp.h"
16 PEP_cryptotech_t cryptotech[PEP_crypt__count];
18 PEP_STATUS init_cryptotech(PEP_SESSION session, bool in_first)
20 PEP_STATUS status = PEP_STATUS_OK;
22 assert(PEP_crypt__count == 2);
25 memset(cryptotech, 0, sizeof(PEP_cryptotech_t) * PEP_crypt__count);
27 cryptotech[PEP_crypt_none].id = PEP_crypt_none;
28 cryptotech[PEP_crypt_none].unconfirmed_comm_type = PEP_ct_no_encryption;
29 cryptotech[PEP_crypt_none].confirmed_comm_type = PEP_ct_no_encryption;
31 cryptotech[PEP_crypt_OpenPGP].id = PEP_crypt_OpenPGP;
32 cryptotech[PEP_crypt_OpenPGP].unconfirmed_comm_type = PEP_ct_OpenPGP_unconfirmed;
33 cryptotech[PEP_crypt_OpenPGP].confirmed_comm_type = PEP_ct_OpenPGP;
34 cryptotech[PEP_crypt_OpenPGP].decrypt_and_verify = pgp_decrypt_and_verify;
35 cryptotech[PEP_crypt_OpenPGP].encrypt_and_sign = pgp_encrypt_and_sign;
36 cryptotech[PEP_crypt_OpenPGP].verify_text = pgp_verify_text;
37 cryptotech[PEP_crypt_OpenPGP].delete_keypair = pgp_delete_keypair;
38 cryptotech[PEP_crypt_OpenPGP].export_key = pgp_export_keydata;
39 cryptotech[PEP_crypt_OpenPGP].find_keys = pgp_find_keys;
40 cryptotech[PEP_crypt_OpenPGP].generate_keypair = pgp_generate_keypair;
41 cryptotech[PEP_crypt_OpenPGP].get_key_rating = pgp_get_key_rating;
42 cryptotech[PEP_crypt_OpenPGP].import_key = pgp_import_keydata;
43 cryptotech[PEP_crypt_OpenPGP].recv_key = pgp_recv_key;
44 cryptotech[PEP_crypt_OpenPGP].send_key = pgp_send_key;
45 cryptotech[PEP_crypt_OpenPGP].renew_key = pgp_renew_key;
46 cryptotech[PEP_crypt_OpenPGP].revoke_key = pgp_revoke_key;
47 cryptotech[PEP_crypt_OpenPGP].key_expired = pgp_key_expired;
48 cryptotech[PEP_crypt_OpenPGP].key_revoked = pgp_key_revoked;
49 #ifdef PGP_BINARY_PATH
50 cryptotech[PEP_crypt_OpenPGP].binary_path = PGP_BINARY_PATH;
54 session->cryptotech = cryptotech;
56 status = pgp_init(session, in_first);
57 if (status != PEP_STATUS_OK)
63 pgp_release(session, in_first);
67 void release_cryptotech(PEP_SESSION session, bool out_last)
69 pgp_release(session, out_last);