js: update getDefaultKey to more precise logic
-- * src/Keyring.js: Adapted Keyring.getDefaultKey() to my current understanding of a default signing key: either the default key set in the gpg config, or 'the first usable private key' - usability meaning 'not invalid, expired, revoked, and can be used for signing'. It should be the same key used as in command line when doing a --sign operation. In case the user has a smartcard plugged in, we currently won't know of this here, so our choice may differ. But as we do all javascript-binding sign operations with the key fingerprint explicitly set, this should not be a real problem. This method is seen more as a convenience to tell using librarys which key represents the main user.
This commit is contained in:
parent
24a0005865
commit
60dc499abd
@ -221,7 +221,12 @@ export class GPGME_Keyring {
|
|||||||
reject(gpgme_error('KEY_NO_DEFAULT'));
|
reject(gpgme_error('KEY_NO_DEFAULT'));
|
||||||
} else {
|
} else {
|
||||||
for (let i=0; i< result.keys.length; i++ ) {
|
for (let i=0; i< result.keys.length; i++ ) {
|
||||||
if (result.keys[i].invalid === false) {
|
if (
|
||||||
|
result.keys[i].invalid === false &&
|
||||||
|
result.keys[i].expired === false &&
|
||||||
|
result.keys[i].revoked === false &&
|
||||||
|
result.keys[i].can_sign === true
|
||||||
|
) {
|
||||||
let k = createKey(
|
let k = createKey(
|
||||||
result.keys[i].fingerprint,
|
result.keys[i].fingerprint,
|
||||||
!prepare_sync,
|
!prepare_sync,
|
||||||
|
Loading…
Reference in New Issue
Block a user