src/cryptotech.c
author vb
Mon, 01 Sep 2014 20:56:05 +0200
changeset 28 7fc9fc3e680c
parent 24 50887c6ab78f
child 62 ad5e484720e1
permissions -rw-r--r--
...
     1 #include "pEp_internal.h"
     2 
     3 #ifdef NO_GPG
     4 #include "pgp_netpgp.h"
     5 #else
     6 #include "pgp_gpg.h"
     7 #endif
     8 
     9 #include <stdlib.h>
    10 #include <memory.h>
    11 #include <assert.h>
    12 
    13 PEP_STATUS init_cryptotech(PEP_SESSION session)
    14 {
    15     pEpSession *_session = (pEpSession *) session;
    16     PEP_cryptotech_t *cryptotech = _session->cryptotech;
    17     PEP_STATUS _status;
    18 
    19     assert(PEP_crypt__count == 2);
    20     memset(cryptotech, 0, sizeof(PEP_cryptotech_t) * PEP_crypt__count);
    21 
    22     cryptotech[PEP_crypt_none].id = PEP_crypt_none;
    23     cryptotech[PEP_crypt_none].unconfirmed_comm_type = PEP_ct_no_encryption;
    24     cryptotech[PEP_crypt_none].confirmed_comm_type = PEP_ct_no_encryption;
    25 
    26     _status = pgp_init(_session);
    27     assert(_status == PEP_STATUS_OK);
    28     if (_status != PEP_STATUS_OK) {
    29         free(_session);
    30         return _status;
    31     }
    32 
    33     cryptotech[PEP_crypt_OpenPGP].id = PEP_crypt_OpenPGP;
    34     cryptotech[PEP_crypt_OpenPGP].unconfirmed_comm_type = PEP_ct_OpenPGP_unconfirmed;
    35     cryptotech[PEP_crypt_OpenPGP].confirmed_comm_type = PEP_ct_OpenPGP;
    36     cryptotech[PEP_crypt_OpenPGP].decrypt_and_verify = pgp_decrypt_and_verify;
    37     cryptotech[PEP_crypt_OpenPGP].encrypt_and_sign = pgp_encrypt_and_sign;
    38     cryptotech[PEP_crypt_OpenPGP].verify_text = pgp_verify_text;
    39     cryptotech[PEP_crypt_OpenPGP].delete_keypair = pgp_delete_keypair;
    40     cryptotech[PEP_crypt_OpenPGP].export_key = pgp_export_key;
    41     cryptotech[PEP_crypt_OpenPGP].find_keys = pgp_find_keys;
    42     cryptotech[PEP_crypt_OpenPGP].generate_keypair = pgp_generate_keypair;
    43     cryptotech[PEP_crypt_OpenPGP].get_key_rating = pgp_get_key_rating;
    44     cryptotech[PEP_crypt_OpenPGP].import_key = pgp_import_key;
    45     cryptotech[PEP_crypt_OpenPGP].recv_key = pgp_recv_key;
    46     cryptotech[PEP_crypt_OpenPGP].send_key = pgp_send_key;
    47 
    48     return PEP_STATUS_OK;
    49 }
    50 
    51 void release_cryptotech(PEP_SESSION session)
    52 {
    53     pgp_release(session);
    54 }