doc_update_sequoia
vb 2015-01-16 18:39:27 +01:00
parent a337835f09
commit a622b2879b
4 changed files with 54 additions and 41 deletions

View File

@ -98,6 +98,7 @@ PEP_STATUS mime_encode_parts(const message *src, message **dst)
if (fp == NULL) {
return PEP_CANNOT_CREATE_TEMP_FILE;
}
// unlink(fn);
int col = 0;
int r = mailmime_write_file(fp, &col, mime_body);

View File

@ -1,6 +1,8 @@
#include "pgp_gpg.h"
#include "pEp_internal.h"
#define _GPGERR(X) ((X) & 0xffffL)
static bool ensure_keyserver()
{
static char buf[MAX_LINELENGTH];
@ -209,7 +211,7 @@ PEP_STATUS pgp_init(PEP_SESSION session)
_session->gpg.gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
gpgme_error = _session->gpg.gpgme_new(&_session->ctx);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
if (gpgme_error != GPG_ERR_NO_ERROR) {
dlclose(_session->gpgme);
free(_session);
@ -219,7 +221,7 @@ PEP_STATUS pgp_init(PEP_SESSION session)
gpgme_error = _session->gpg.gpgme_set_protocol(_session->ctx,
GPGME_PROTOCOL_OpenPGP);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
_session->gpg.gpgme_set_armor(_session->ctx, 1);
@ -264,7 +266,7 @@ PEP_STATUS pgp_decrypt_and_verify(
*keylist = NULL;
gpgme_error = _session->gpg.gpgme_data_new_from_mem(&cipher, ctext, csize, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
if (gpgme_error == GPG_ERR_ENOMEM)
@ -274,7 +276,7 @@ PEP_STATUS pgp_decrypt_and_verify(
}
gpgme_error = _session->gpg.gpgme_data_new(&plain);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
_session->gpg.gpgme_data_release(cipher);
@ -290,7 +292,7 @@ PEP_STATUS pgp_decrypt_and_verify(
case GPGME_DATA_TYPE_PGP_OTHER:
gpgme_error = _session->gpg.gpgme_op_decrypt_verify(_session->ctx, cipher,
plain);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
assert(gpgme_error != GPG_ERR_NO_DATA);
@ -450,7 +452,7 @@ PEP_STATUS pgp_verify_text(
*keylist = NULL;
gpgme_error = _session->gpg.gpgme_data_new_from_mem(&d_text, text, size, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
if (gpgme_error == GPG_ERR_ENOMEM)
@ -460,7 +462,7 @@ PEP_STATUS pgp_verify_text(
}
gpgme_error = _session->gpg.gpgme_data_new_from_mem(&d_sig, signature, sig_size, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
_session->gpg.gpgme_data_release(d_text);
@ -471,7 +473,7 @@ PEP_STATUS pgp_verify_text(
}
gpgme_error = _session->gpg.gpgme_op_verify(_session->ctx, d_sig, d_text, NULL);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
switch (gpgme_error) {
@ -587,7 +589,7 @@ PEP_STATUS pgp_encrypt_and_sign(
*csize = 0;
gpgme_error = _session->gpg.gpgme_data_new_from_mem(&plain, ptext, psize, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
if (gpgme_error == GPG_ERR_ENOMEM)
@ -597,7 +599,7 @@ PEP_STATUS pgp_encrypt_and_sign(
}
gpgme_error = _session->gpg.gpgme_data_new(&cipher);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
if (gpgme_error != GPG_ERR_NO_ERROR) {
_session->gpg.gpgme_data_release(plain);
@ -622,7 +624,7 @@ PEP_STATUS pgp_encrypt_and_sign(
assert(_keylist->value);
gpgme_error = _session->gpg.gpgme_get_key(_session->ctx, _keylist->value,
&rcpt[i], 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_ENOMEM);
switch (gpgme_error) {
@ -636,7 +638,7 @@ PEP_STATUS pgp_encrypt_and_sign(
case GPG_ERR_NO_ERROR:
if (i == 0) {
gpgme_error_t _gpgme_error = _session->gpg.gpgme_signers_add(_session->ctx, rcpt[0]);
_gpgme_error = gpg_err_code(_gpgme_error);
_gpgme_error = _GPGERR(_gpgme_error);
assert(_gpgme_error == GPG_ERR_NO_ERROR);
}
break;
@ -670,7 +672,7 @@ PEP_STATUS pgp_encrypt_and_sign(
gpgme_error = _session->gpg.gpgme_op_encrypt_sign(_session->ctx, rcpt, flags,
plain, cipher);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
{
@ -754,7 +756,7 @@ PEP_STATUS pgp_generate_keypair(
}
gpgme_error = _session->gpg.gpgme_op_genkey(_session->ctx, parms, NULL, NULL);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
free(parms);
switch (gpgme_error) {
@ -788,7 +790,7 @@ PEP_STATUS pgp_delete_keypair(PEP_SESSION session, const char *fpr)
assert(fpr);
gpgme_error = _session->gpg.gpgme_get_key(_session->ctx, fpr, &key, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_ENOMEM);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
@ -807,7 +809,7 @@ PEP_STATUS pgp_delete_keypair(PEP_SESSION session, const char *fpr)
}
gpgme_error = _session->gpg.gpgme_op_delete(_session->ctx, key, 1);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
_session->gpg.gpgme_key_unref(key);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
@ -839,7 +841,7 @@ PEP_STATUS pgp_import_key(PEP_SESSION session, const char *key_data, size_t size
assert(key_data);
gpgme_error = _session->gpg.gpgme_data_new_from_mem(&dh, key_data, size, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_ENOMEM);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
@ -855,7 +857,7 @@ PEP_STATUS pgp_import_key(PEP_SESSION session, const char *key_data, size_t size
}
gpgme_error = _session->gpg.gpgme_op_import(_session->ctx, dh);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
break;
@ -893,7 +895,7 @@ PEP_STATUS pgp_export_key(
assert(size);
gpgme_error = _session->gpg.gpgme_data_new(&dh);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_ENOMEM);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
@ -910,7 +912,7 @@ PEP_STATUS pgp_export_key(
gpgme_error = _session->gpg.gpgme_op_export(_session->ctx, fpr,
GPGME_EXPORT_MODE_MINIMAL, dh);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
break;
@ -963,7 +965,7 @@ static void _switch_mode(pEpSession *_session, gpgme_keylist_mode_t remove_mode,
mode |= add_mode;
gpgme_error = _session->gpg.gpgme_set_keylist_mode(_session->ctx, mode);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error == GPG_ERR_NO_ERROR);
}
@ -979,7 +981,7 @@ PEP_STATUS pgp_recv_key(PEP_SESSION session, const char *pattern)
_switch_mode(_session, GPGME_KEYLIST_MODE_LOCAL, GPGME_KEYLIST_MODE_EXTERN);
gpgme_error = _session->gpg.gpgme_op_keylist_start(_session->ctx, pattern, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
break;
@ -996,7 +998,7 @@ PEP_STATUS pgp_recv_key(PEP_SESSION session, const char *pattern)
do {
gpgme_error = _session->gpg.gpgme_op_keylist_next(_session->ctx, &key);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
switch (gpgme_error) {
case GPG_ERR_EOF:
@ -1010,7 +1012,7 @@ PEP_STATUS pgp_recv_key(PEP_SESSION session, const char *pattern)
keys[1] = NULL;
gpgme_error = _session->gpg.gpgme_op_import_keys(_session->ctx, keys);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
_session->gpg.gpgme_key_unref(key);
assert(gpgme_error != GPG_ERR_INV_VALUE);
assert(gpgme_error != GPG_ERR_CONFLICT);
@ -1056,7 +1058,7 @@ PEP_STATUS pgp_find_keys(
*keylist = NULL;
gpgme_error = _session->gpg.gpgme_op_keylist_start(_session->ctx, pattern, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
break;
@ -1072,7 +1074,7 @@ PEP_STATUS pgp_find_keys(
do {
gpgme_error = _session->gpg.gpgme_op_keylist_next(_session->ctx, &key);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
switch (gpgme_error) {
case GPG_ERR_EOF:
@ -1117,7 +1119,7 @@ PEP_STATUS pgp_send_key(PEP_SESSION session, const char *pattern)
gpgme_error = _session->gpg.gpgme_op_export(_session->ctx, pattern,
GPGME_EXPORT_MODE_EXTERN, NULL);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
if (gpgme_error == GPG_ERR_NO_ERROR)
return PEP_STATUS_OK;
@ -1144,7 +1146,7 @@ PEP_STATUS pgp_get_key_rating(
*comm_type = PEP_ct_unknown;
gpgme_error = _session->gpg.gpgme_op_keylist_start(_session->ctx, fpr, 0);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
switch (gpgme_error) {
case GPG_ERR_NO_ERROR:
break;
@ -1156,7 +1158,7 @@ PEP_STATUS pgp_get_key_rating(
};
gpgme_error = _session->gpg.gpgme_op_keylist_next(_session->ctx, &key);
gpgme_error = gpg_err_code(gpgme_error);
gpgme_error = _GPGERR(gpgme_error);
assert(gpgme_error != GPG_ERR_INV_VALUE);
if (key == NULL) {

View File

@ -35,7 +35,7 @@ typedef struct _identity_list {
// caveat:
// ident is being moved, the caller loses ownership
identity_list *new_identity_list(pEp_identity *ident);
DYNAMIC_API identity_list *new_identity_list(pEp_identity *ident);
// identity_list_dup() - duplicate identity_list (deep copy)
@ -46,7 +46,7 @@ identity_list *new_identity_list(pEp_identity *ident);
// return value:
// new identity_list or NULL if out of memory
identity_list *identity_list_dup(const identity_list *src);
DYNAMIC_API identity_list *identity_list_dup(const identity_list *src);
// free_identity_list() - free memory allocated by identity_list
@ -58,7 +58,7 @@ identity_list *identity_list_dup(const identity_list *src);
// this function frees all identities in the list additional to the
// identity_list itself
void free_identity_list(identity_list *id_list);
DYNAMIC_API void free_identity_list(identity_list *id_list);
// identity_list_add - add identity to an identity_list
@ -73,7 +73,7 @@ void free_identity_list(identity_list *id_list);
// caveat:
// ident is being moved, the caller loses ownership
identity_list *identity_list_add(identity_list *id_list, pEp_identity *ident);
DYNAMIC_API identity_list *identity_list_add(identity_list *id_list, pEp_identity *ident);
typedef enum _PEP_msg_format {
PEP_format_plain = 0,
@ -111,7 +111,7 @@ typedef struct _bloblist_t {
// the ownership of the blob goes to the bloblist; mime_type and file_name
// are being copied, the originals remain in the ownership of the caller
bloblist_t *new_bloblist(char *blob, size_t size, const char *mime_type,
DYNAMIC_API bloblist_t *new_bloblist(char *blob, size_t size, const char *mime_type,
const char *file_name);
@ -120,7 +120,7 @@ bloblist_t *new_bloblist(char *blob, size_t size, const char *mime_type,
// parameters:
// bloblist bloblist to free
void free_bloblist(bloblist_t *bloblist);
DYNAMIC_API void free_bloblist(bloblist_t *bloblist);
// bloblist_add() - add reference to a blob to bloblist
@ -139,7 +139,7 @@ void free_bloblist(bloblist_t *bloblist);
// the ownership of the blob goes to the bloblist; mime_type and file_name
// are being copied, the originals remain in the ownership of the caller
bloblist_t *bloblist_add(bloblist_t *bloblist, char *blob, size_t size,
DYNAMIC_API bloblist_t *bloblist_add(bloblist_t *bloblist, char *blob, size_t size,
const char *mime_type, const char *file_name);
@ -205,7 +205,7 @@ typedef struct _message_ref_list {
// them; shortmsg is being copied, the ownership of the original remains
// with the caller
message *new_message(
DYNAMIC_API message *new_message(
PEP_msg_direction dir,
pEp_identity *from,
identity_list *to,
@ -222,7 +222,7 @@ message *new_message(
// raw data as well as referenced other messages aren't freed and remain
// in the ownership of the caller
void free_message(message *msg);
DYNAMIC_API void free_message(message *msg);
// new_message_ref_list() - allocate new message reference list
@ -233,7 +233,7 @@ void free_message(message *msg);
// return value:
// pointer to new message_ref_list or NULL if out of memory
message_ref_list *new_message_ref_list(message *msg);
DYNAMIC_API message_ref_list *new_message_ref_list(message *msg);
// free_message_ref_list() - free message reference list
@ -241,7 +241,7 @@ message_ref_list *new_message_ref_list(message *msg);
// parameters:
// msg_list message_ref_list to free
void free_message_ref_list(message_ref_list *msg_list);
DYNAMIC_API void free_message_ref_list(message_ref_list *msg_list);
// message_ref_list_add() - add a reference to a message to a message reference
@ -255,7 +255,7 @@ void free_message_ref_list(message_ref_list *msg_list);
// pointer to the last element of message_ref_list or NULL if out of
// memory
message_ref_list *message_ref_list_add(message_ref_list *msg_list,
DYNAMIC_API message_ref_list *message_ref_list_add(message_ref_list *msg_list,
message *msg);

View File

@ -29,9 +29,19 @@ int main() {
assert(enc_msg);
cout << "message encrypted.\n";
// cout << "MIME encoding message…\n";
// message *mmsg;
// PEP_STATUS status3 = mime_encode_parts(msg, &mmsg);
// assert(mmsg);
// assert(status3 == PEP_STATUS_OK);
// cout << "message:\n";
// cout << mmsg->longmsg;
// cout << "\n";
cout << "freeing messages…\n";
free_message(msg);
free_message(enc_msg);
// free_message(mmsg);
cout << "done.\n";
cout << "calling release()\n";