make sure key used for signing _can_ sign
This commit is contained in:
parent
abf4c3bb50
commit
59c6205c78
@ -1118,17 +1118,27 @@ bool signMessage( const char* cleartext,
|
|||||||
/* select the signer's key if provided */
|
/* select the signer's key if provided */
|
||||||
if (certificate != 0) {
|
if (certificate != 0) {
|
||||||
err = gpgme_op_keylist_start(ctx, certificate, 0);
|
err = gpgme_op_keylist_start(ctx, certificate, 0);
|
||||||
if (err == GPGME_No_Error) {
|
while (err == GPGME_No_Error) {
|
||||||
/* we only support one signer for now */
|
err = gpgme_op_keylist_next(ctx, &rKey);
|
||||||
err = gpgme_op_keylist_next(ctx, &rKey);
|
if (err == GPGME_No_Error) {
|
||||||
if (err == GPGME_No_Error) {
|
unsigned long u;
|
||||||
/* clear existing signers */
|
u = gpgme_key_get_ulong_attr(rKey, GPGME_ATTR_CAN_SIGN, 0, 0);
|
||||||
gpgme_signers_clear(ctx);
|
if( u ) {
|
||||||
/* set the signing key */
|
|
||||||
gpgme_signers_add(ctx, rKey);
|
// const char* s;
|
||||||
}
|
// s = gpgme_key_get_string_attr(rKey, GPGME_ATTR_FPR, 0, 0);
|
||||||
gpgme_op_keylist_end(ctx);
|
// fprintf( stderr, "gpgmeplug signMessage signing with key: %s\n", s );
|
||||||
|
|
||||||
|
/* clear existing signers */
|
||||||
|
gpgme_signers_clear(ctx);
|
||||||
|
/* set the signing key */
|
||||||
|
gpgme_signers_add(ctx, rKey);
|
||||||
|
/* we only support one signer for now */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
gpgme_op_keylist_end(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PENDING(g10) Implement this
|
/* PENDING(g10) Implement this
|
||||||
@ -2584,8 +2594,7 @@ bool checkMessageSignature( char** cleartext,
|
|||||||
sigmeta->extended_info[sig_idx].userid_num = attr_ulong;
|
sigmeta->extended_info[sig_idx].userid_num = attr_ulong;
|
||||||
|
|
||||||
/* extract the length */
|
/* extract the length */
|
||||||
attr_ulong = gpgme_key_get_ulong_attr(key, GPGME_ATTR_LEN, 0, 0);
|
sigmeta->extended_info[sig_idx].keylen = attr_ulong;
|
||||||
sigmeta->extended_info[sig_idx].keylen = attr_ulong;
|
|
||||||
|
|
||||||
/* extract the creation time of the key */
|
/* extract the creation time of the key */
|
||||||
attr_ulong = gpgme_key_get_ulong_attr(key, GPGME_ATTR_CREATED, 0, 0);
|
attr_ulong = gpgme_key_get_ulong_attr(key, GPGME_ATTR_CREATED, 0, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user