@ -8,6 +8,9 @@
*
* @ see https : //sequoia-pgp.org/
* @ see https : //docs.sequoia-pgp.org/sequoia_ffi/index.html
*
* @ todo more doc
* @ todo tidy up tabs
*/
# pragma once
@ -19,8 +22,8 @@
*
* @ brief initialise the sequoia driver for this session
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] in_first true if this is the first pEp session running
* @ param [ in ] session PEP_SESSION
* @ param [ in ] in_first true if this is the first pEp session running
* after startup , else false
*
*/
@ -31,8 +34,8 @@ PEP_STATUS pgp_init(PEP_SESSION session, bool in_first);
*
* @ brief release resources used by the sequoia driver in this session
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] out_last true if this is the last extant pEp session
* @ param [ in ] session PEP_SESSION
* @ param [ in ] out_last true if this is the last extant pEp session
* running , else false
*
*/
@ -41,17 +44,17 @@ void pgp_release(PEP_SESSION session, bool out_last);
/**
* < ! - - pgp_decrypt_and_verify ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * ctext constchar
* @ param [ in ] csize size_t
* @ param [ in ] * dsigtext constchar
* @ param [ in ] dsigsize size_t
* @ param [ in ] * * ptext char
* @ param [ in ] * psize size_t
* @ param [ in ] * * keylist stringlist_t
* @ param [ in ] * * filename_ptr char
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * ctext constchar
* @ param [ in ] csize size_t
* @ param [ in ] * dsigtext constchar
* @ param [ in ] dsigsize size_t
* @ param [ in ] * * ptext char
* @ param [ in ] * psize size_t
* @ param [ in ] * * keylist stringlist_t
* @ param [ in ] * * filename_ptr char
*
*/
PEP_STATUS pgp_decrypt_and_verify (
@ -64,14 +67,14 @@ PEP_STATUS pgp_decrypt_and_verify(
/**
* < ! - - pgp_encrypt_and_sign ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * keylist conststringlist_t
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * ctext char
* @ param [ in ] * csize size_t
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * keylist conststringlist_t
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * ctext char
* @ param [ in ] * csize size_t
*
*/
PEP_STATUS pgp_encrypt_and_sign (
@ -82,14 +85,14 @@ PEP_STATUS pgp_encrypt_and_sign(
/**
* < ! - - pgp_sign_only ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * stext char
* @ param [ in ] * ssize size_t
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * stext char
* @ param [ in ] * ssize size_t
*
*/
PEP_STATUS pgp_sign_only (
@ -100,14 +103,14 @@ PEP_STATUS pgp_sign_only(
/**
* < ! - - pgp_encrypt_only ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * keylist conststringlist_t
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * ctext char
* @ param [ in ] * csize size_t
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * keylist conststringlist_t
* @ param [ in ] * ptext constchar
* @ param [ in ] psize size_t
* @ param [ in ] * * ctext char
* @ param [ in ] * csize size_t
*
*/
PEP_STATUS pgp_encrypt_only (
@ -119,14 +122,14 @@ PEP_STATUS pgp_encrypt_only(
/**
* < ! - - pgp_verify_text ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * text constchar
* @ param [ in ] size size_t
* @ param [ in ] * signature constchar
* @ param [ in ] sig_size size_t
* @ param [ in ] * * keylist stringlist_t
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * text constchar
* @ param [ in ] size size_t
* @ param [ in ] * signature constchar
* @ param [ in ] sig_size size_t
* @ param [ in ] * * keylist stringlist_t
*
*/
PEP_STATUS pgp_verify_text (
@ -137,10 +140,10 @@ PEP_STATUS pgp_verify_text(
/**
* < ! - - pgp_delete_keypair ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
*
*/
PEP_STATUS pgp_delete_keypair ( PEP_SESSION session , const char * fpr ) ;
@ -148,13 +151,13 @@ PEP_STATUS pgp_delete_keypair(PEP_SESSION session, const char *fpr);
/**
* < ! - - pgp_export_keydata ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * * key_data char
* @ param [ in ] * size size_t
* @ param [ in ] secret bool
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * * key_data char
* @ param [ in ] * size size_t
* @ param [ in ] secret bool
*
*/
PEP_STATUS pgp_export_keydata (
@ -165,12 +168,17 @@ PEP_STATUS pgp_export_keydata(
/**
* < ! - - pgp_find_keys ( ) - - >
*
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
* @ param [ in ] * * keylist stringlist_t
* @ brief Find all keys ( as fpr strings ) which match this fpr or OpenPGP
* userid pattern
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] pattern Pattern to search for ; could be empty ,
* an fpr , or a mailbox ( email , URI , etc ) .
* @ param [ in , out ] keylist A list of fprs containing matching keys .
*
* @ note Unlike pgp_list_keyinfo , this function returns revoked keys .
*
* @ see pgp_list_keyinfo ( )
*/
PEP_STATUS pgp_find_keys (
PEP_SESSION session , const char * pattern , stringlist_t * * keylist
@ -179,14 +187,14 @@ PEP_STATUS pgp_find_keys(
/**
* < ! - - pgp_list_keyinfo ( ) - - >
*
* @ brief Find all keys ( in < fpr , OpenPGP uid > pairs which match this fpr
* or other OpenPGP userid pattern
* @ brief Find all keys ( return ing < fpr , OpenPGP uid > pairs ) which match this fpr
* or OpenPGP userid pattern
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] pattern Pattern to search for ; could be empty ,
* an fpr , or a mailbox ( email , URI , etc ) .
* @ param [ in , out ] keyinfo_list A list of < fpr , OpenPGP userid > tuples for the
* matching keys .
* @ param [ in ] session PEP_SESSION
* @ param [ in ] pattern Pattern to search for ; could be empty ,
* an fpr , or a mailbox ( email , URI , etc ) .
* @ param [ in , out ] keyinfo_list A list of < fpr , OpenPGP userid > tuples for the
* matching keys .
*
* @ note This function filters out revoked keys , but NOT expired keys .
*/
@ -197,10 +205,10 @@ PEP_STATUS pgp_list_keyinfo(
/**
* < ! - - pgp_generate_keypair ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * identity pEp_identity
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * identity pEp_identity
*
*/
PEP_STATUS pgp_generate_keypair (
@ -210,11 +218,11 @@ PEP_STATUS pgp_generate_keypair(
/**
* < ! - - pgp_get_key_rating ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * comm_type PEP_comm_type
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * comm_type PEP_comm_type
*
*/
PEP_STATUS pgp_get_key_rating (
@ -223,6 +231,19 @@ PEP_STATUS pgp_get_key_rating(
PEP_comm_type * comm_type
) ;
/**
* < ! - - pgp_import_keydata ( ) - - >
*
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * key_data const char
* @ param [ in ] size size_t
* @ param [ in ] * * private_idents identity_list
* @ param [ in ] * * imported_keys stringlist_t
* @ param [ in ] * changed_key_index uint64_t
*
*/
PEP_STATUS pgp_import_keydata ( PEP_SESSION session , const char * key_data ,
size_t size , identity_list * * private_idents ,
stringlist_t * * imported_keys ,
@ -231,12 +252,12 @@ PEP_STATUS pgp_import_keydata(PEP_SESSION session, const char *key_data,
/**
* < ! - - pgp_import_private_keydata ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * key_data constchar
* @ param [ in ] size size_t
* @ param [ in ] * * private_idents identity_list
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * key_data constchar
* @ param [ in ] size size_t
* @ param [ in ] * * private_idents identity_list
*
*/
PEP_STATUS pgp_import_private_keydata ( PEP_SESSION session , const char * key_data ,
@ -245,20 +266,20 @@ PEP_STATUS pgp_import_private_keydata(PEP_SESSION session, const char *key_data,
/**
* < ! - - pgp_recv_key ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
*
*/
PEP_STATUS pgp_recv_key ( PEP_SESSION session , const char * pattern ) ;
/**
* < ! - - pgp_send_key ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
*
*/
PEP_STATUS pgp_send_key ( PEP_SESSION session , const char * pattern ) ;
@ -266,11 +287,11 @@ PEP_STATUS pgp_send_key(PEP_SESSION session, const char *pattern);
/**
* < ! - - pgp_renew_key ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * ts consttimestamp
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * ts consttimestamp
*
*/
PEP_STATUS pgp_renew_key (
@ -282,11 +303,11 @@ PEP_STATUS pgp_renew_key(
/**
* < ! - - pgp_revoke_key ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * reason constchar
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * reason constchar
*
*/
PEP_STATUS pgp_revoke_key (
@ -298,12 +319,12 @@ PEP_STATUS pgp_revoke_key(
/**
* < ! - - pgp_key_expired ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] when consttime_t
* @ param [ in ] * expired bool
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] when consttime_t
* @ param [ in ] * expired bool
*
*/
PEP_STATUS pgp_key_expired (
@ -316,11 +337,11 @@ PEP_STATUS pgp_key_expired(
/**
* < ! - - pgp_key_revoked ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * revoked bool
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * revoked bool
*
*/
PEP_STATUS pgp_key_revoked (
@ -332,11 +353,11 @@ PEP_STATUS pgp_key_revoked(
/**
* < ! - - pgp_key_created ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * created time_t
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * created time_t
*
*/
PEP_STATUS pgp_key_created (
@ -348,11 +369,11 @@ PEP_STATUS pgp_key_created(
/**
* < ! - - pgp_contains_priv_key ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * has_private bool
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * fpr constchar
* @ param [ in ] * has_private bool
*
*/
PEP_STATUS pgp_contains_priv_key (
@ -363,12 +384,17 @@ PEP_STATUS pgp_contains_priv_key(
/**
* < ! - - pgp_find_private_keys ( ) - - >
*
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] * pattern constchar
* @ param [ in ] * * keylist stringlist_t
* @ brief Find all keys ( as fpr strings ) which match this fpr or OpenPGP
* userid pattern AND contain a private key
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] pattern Pattern to search for ; could be empty ,
* an fpr , or a mailbox ( email , URI , etc ) .
* @ param [ in , out ] keylist A list of fprs containing matching keys .
*
* @ note Unlike pgp_list_keyinfo , this function returns revoked keys .
*
* @ see pgp_list_keyinfo ( )
*/
PEP_STATUS pgp_find_private_keys (
PEP_SESSION session , const char * pattern , stringlist_t * * keylist
@ -377,9 +403,9 @@ PEP_STATUS pgp_find_private_keys(
/**
* < ! - - pgp_binary ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] * * path constchar
* @ param [ in ] * * path constchar
*
*/
PEP_STATUS pgp_binary ( const char * * path ) ;
@ -387,10 +413,10 @@ PEP_STATUS pgp_binary(const char **path);
/**
* < ! - - pgp_config_cipher_suite ( ) - - >
*
* @ brief TODO
* @ brief TODO
*
* @ param [ in ] session PEP_SESSION
* @ param [ in ] suite PEP_CIPHER_SUITE
* @ param [ in ] session PEP_SESSION
* @ param [ in ] suite PEP_CIPHER_SUITE
*
*/
PEP_STATUS pgp_config_cipher_suite ( PEP_SESSION session ,