merged in default
commit
bb7a9ce7de
10
default.conf
10
default.conf
|
@ -238,6 +238,16 @@ NETPGP_INC=
|
|||
#NETPGP_INC=-I$(PREFIX)/include
|
||||
|
||||
|
||||
######### OpenPGP #########
|
||||
# CppUnit library search flag
|
||||
CPPUNIT_LIB=
|
||||
#CPPUNIT_LIB=-L$(HOME)/local/lib
|
||||
|
||||
# CppUnit include search flag
|
||||
CPPUNIT_INC=
|
||||
#CPPUNIT_INC=-I$(HOME)/local/inc
|
||||
|
||||
|
||||
######### Engine internals #########
|
||||
# C macros (not environment variables) that can be overridden:
|
||||
# DEFAULT_KEYSERVER - string with default keyserver
|
||||
|
|
|
@ -19,7 +19,8 @@ typedef enum _PEP_cryptotech {
|
|||
typedef PEP_STATUS (*decrypt_and_verify_t)(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char **filename_ptr
|
||||
);
|
||||
|
||||
typedef PEP_STATUS (*verify_text_t)(
|
||||
|
|
|
@ -1170,6 +1170,7 @@ static bool is_encrypted_html_attachment(const bloblist_t *blob)
|
|||
return false;
|
||||
|
||||
const char* bare_filename_ptr = _get_resource_ptr_noown(blob->filename);
|
||||
bare_filename_ptr += strlen(bare_filename_ptr) - 15;
|
||||
if (strncmp(bare_filename_ptr, "PGPexch.htm.", 12) == 0) {
|
||||
if (strcmp(bare_filename_ptr + 11, ".pgp") == 0 ||
|
||||
strcmp(bare_filename_ptr + 11, ".asc") == 0)
|
||||
|
@ -1455,7 +1456,8 @@ bool import_attached_keys(
|
|||
blob_value, blob_size,
|
||||
NULL, 0,
|
||||
&bl_ptext, &bl_psize,
|
||||
&bl_keylist);
|
||||
&bl_keylist,
|
||||
NULL);
|
||||
free_stringlist(bl_keylist); // we don't care about key encryption as long as we decrypt
|
||||
if (_status == PEP_DECRYPTED || _status == PEP_DECRYPTED_AND_VERIFIED) {
|
||||
free_blobval = true;
|
||||
|
@ -2700,7 +2702,8 @@ static PEP_STATUS verify_decrypted(PEP_SESSION session,
|
|||
free_stringlist(*keylist);
|
||||
*decrypt_status = decrypt_and_verify(session, ctext, csize,
|
||||
NULL, 0,
|
||||
&ptext, &psize, keylist);
|
||||
&ptext, &psize, keylist,
|
||||
NULL);
|
||||
|
||||
}
|
||||
|
||||
|
@ -2750,9 +2753,12 @@ static PEP_STATUS _decrypt_in_pieces(PEP_SESSION session,
|
|||
free(ptext);
|
||||
ptext = NULL;
|
||||
|
||||
char* pgp_filename = NULL;
|
||||
status = decrypt_and_verify(session, attctext, attcsize,
|
||||
NULL, 0,
|
||||
&ptext, &psize, &_keylist);
|
||||
&ptext, &psize, &_keylist,
|
||||
&pgp_filename);
|
||||
|
||||
free_stringlist(_keylist);
|
||||
|
||||
if (ptext) {
|
||||
|
@ -2762,17 +2768,25 @@ static PEP_STATUS _decrypt_in_pieces(PEP_SESSION session,
|
|||
}
|
||||
else {
|
||||
static const char * const mime_type = "application/octet-stream";
|
||||
char * const filename =
|
||||
without_double_ending(_s->filename);
|
||||
if (filename == NULL)
|
||||
return PEP_OUT_OF_MEMORY;
|
||||
|
||||
_m = bloblist_add(_m, ptext, psize, mime_type,
|
||||
filename);
|
||||
free(filename);
|
||||
if (_m == NULL)
|
||||
return PEP_OUT_OF_MEMORY;
|
||||
if (pgp_filename) {
|
||||
_m = bloblist_add(_m, ptext, psize, mime_type,
|
||||
pgp_filename);
|
||||
free(pgp_filename);
|
||||
if (_m == NULL)
|
||||
return PEP_OUT_OF_MEMORY;
|
||||
}
|
||||
else {
|
||||
char * const filename =
|
||||
without_double_ending(_s->filename);
|
||||
if (filename == NULL)
|
||||
return PEP_OUT_OF_MEMORY;
|
||||
|
||||
_m = bloblist_add(_m, ptext, psize, mime_type,
|
||||
filename);
|
||||
free(filename);
|
||||
if (_m == NULL)
|
||||
return PEP_OUT_OF_MEMORY;
|
||||
}
|
||||
ptext = NULL;
|
||||
|
||||
if (msg->attachments == NULL)
|
||||
|
@ -2801,6 +2815,7 @@ static PEP_STATUS _decrypt_in_pieces(PEP_SESSION session,
|
|||
return PEP_OUT_OF_MEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@ -3195,7 +3210,8 @@ DYNAMIC_API PEP_STATUS _decrypt_message(
|
|||
/** Ok, we should be ready to decrypt. Try decrypt and verify first! **/
|
||||
status = cryptotech[crypto].decrypt_and_verify(session, ctext,
|
||||
csize, dsig_text, dsig_size,
|
||||
&ptext, &psize, &_keylist);
|
||||
&ptext, &psize, &_keylist,
|
||||
NULL);
|
||||
|
||||
if (status > PEP_CANNOT_DECRYPT_UNKNOWN)
|
||||
goto pep_error;
|
||||
|
|
|
@ -3478,7 +3478,8 @@ DYNAMIC_API PEP_STATUS least_trust(
|
|||
DYNAMIC_API PEP_STATUS decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char** filename_ptr
|
||||
)
|
||||
{
|
||||
assert(session);
|
||||
|
@ -3492,7 +3493,8 @@ DYNAMIC_API PEP_STATUS decrypt_and_verify(
|
|||
return PEP_ILLEGAL_VALUE;
|
||||
|
||||
return session->cryptotech[PEP_crypt_OpenPGP].decrypt_and_verify(
|
||||
session, ctext, csize, dsigtext, dsigsize, ptext, psize, keylist);
|
||||
session, ctext, csize, dsigtext, dsigsize, ptext, psize, keylist,
|
||||
filename_ptr);
|
||||
}
|
||||
|
||||
DYNAMIC_API PEP_STATUS encrypt_and_sign(
|
||||
|
|
|
@ -232,16 +232,20 @@ DYNAMIC_API void config_service_log(PEP_SESSION session, bool enable);
|
|||
// decrypt_and_verify() - decrypt and/or verify a message
|
||||
//
|
||||
// parameters:
|
||||
// session (in) session handle
|
||||
// ctext (in) cipher text to decrypt and/or verify
|
||||
// csize (in) size of cipher text
|
||||
// dsigtext (in) if extant, *detached* signature text for this
|
||||
// message (or NULL if not)
|
||||
// dsize (in) size of *detached* signature text for this
|
||||
// message (0, if no detached sig exists)
|
||||
// ptext (out) pointer to internal buffer with plain text
|
||||
// psize (out) size of plain text
|
||||
// keylist (out) list of key ids which where used to encrypt
|
||||
// session (in) session handle
|
||||
// ctext (in) cipher text to decrypt and/or verify
|
||||
// csize (in) size of cipher text
|
||||
// dsigtext (in) if extant, *detached* signature text for this
|
||||
// message (or NULL if not)
|
||||
// dsize (in) size of *detached* signature text for this
|
||||
// message (0, if no detached sig exists)
|
||||
// ptext (out) pointer to internal buffer with plain text
|
||||
// psize (out) size of plain text
|
||||
// keylist (out) list of key ids which where used to encrypt
|
||||
// filename_ptr (out) mails produced by certain PGP implementations
|
||||
// may return a decrypted filename here for attachments.
|
||||
// Externally, this can generally be NULL, and is an optional
|
||||
// parameter.
|
||||
//
|
||||
// return value:
|
||||
// PEP_UNENCRYPTED message was unencrypted and not signed
|
||||
|
@ -263,7 +267,8 @@ DYNAMIC_API void config_service_log(PEP_SESSION session, bool enable);
|
|||
DYNAMIC_API PEP_STATUS decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char ** filename_ptr
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -577,7 +577,8 @@ void pgp_release(PEP_SESSION session, bool out_last)
|
|||
PEP_STATUS pgp_decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char** filename_ptr
|
||||
)
|
||||
{
|
||||
PEP_STATUS result;
|
||||
|
@ -693,6 +694,15 @@ PEP_STATUS pgp_decrypt_and_verify(
|
|||
*keylist = NULL;
|
||||
result = PEP_OUT_OF_MEMORY;
|
||||
}
|
||||
// Get filename, if desired
|
||||
if (filename_ptr) {
|
||||
const char* fname = gpgme_decrypt_result->file_name;
|
||||
if (fname) {
|
||||
*filename_ptr = strdup(fname);
|
||||
if (!(*filename_ptr))
|
||||
result = PEP_OUT_OF_MEMORY;
|
||||
}
|
||||
}
|
||||
} /* Ok, so now we have any recipients it was encrypted for
|
||||
in recipient_keylist */
|
||||
|
||||
|
@ -811,7 +821,7 @@ PEP_STATUS pgp_decrypt_and_verify(
|
|||
}
|
||||
case GPG_ERR_CERT_REVOKED:
|
||||
case GPG_ERR_BAD_SIGNATURE:
|
||||
result = PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH;
|
||||
result = PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH;
|
||||
//result = PEP_DECRYPT_BAD_SIGNATURE;
|
||||
break;
|
||||
case GPG_ERR_SIG_EXPIRED:
|
||||
|
|
|
@ -11,7 +11,8 @@ void pgp_release(PEP_SESSION session, bool out_last);
|
|||
PEP_STATUS pgp_decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char** filename_ptr
|
||||
);
|
||||
|
||||
PEP_STATUS pgp_encrypt_and_sign(
|
||||
|
|
|
@ -373,7 +373,8 @@ static PEP_STATUS _validation_results(
|
|||
PEP_STATUS pgp_decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char** filename_ptr // will be ignored
|
||||
)
|
||||
{
|
||||
char *_ptext = NULL;
|
||||
|
|
|
@ -10,7 +10,8 @@ void pgp_release(PEP_SESSION session, bool out_last);
|
|||
PEP_STATUS pgp_decrypt_and_verify(
|
||||
PEP_SESSION session, const char *ctext, size_t csize,
|
||||
const char *dsigtext, size_t dsigsize,
|
||||
char **ptext, size_t *psize, stringlist_t **keylist
|
||||
char **ptext, size_t *psize, stringlist_t **keylist,
|
||||
char** filename_ptr // will be ignored
|
||||
);
|
||||
|
||||
PEP_STATUS pgp_encrypt_and_sign(
|
||||
|
|
|
@ -18,14 +18,14 @@ OBJS := $(addsuffix .o,$(basename $(SRCS)))
|
|||
DEPS := $(OBJS:.o=.d)
|
||||
|
||||
INC_DIRS := ./include /usr/local/include
|
||||
INC_FLAGS := $(addprefix -I,$(INC_DIRS)) $(GPGME_INC)
|
||||
INC_FLAGS := $(addprefix -I,$(INC_DIRS)) $(GPGME_INC) $(CPPUNIT_INC)
|
||||
|
||||
LDFLAGS += -L/usr/local/lib
|
||||
|
||||
CFLAGS += -Wno-deprecated
|
||||
CXXFLAGS += -Wno-deprecated
|
||||
|
||||
LDFLAGS+= $(ETPAN_LIB) -L../asn.1 -L../src
|
||||
LDFLAGS+= $(ETPAN_LIB) $(CPPUNIT_LIB) -L../asn.1 -L../src
|
||||
LDLIBS+= -letpan -lpEpEngine -lstdc++ -lasn1
|
||||
|
||||
ifeq ($(BUILD_FOR),Linux)
|
||||
|
|
Loading…
Reference in New Issue