OpenPgpManager: Expose methods to generate and import keys

url_address_information
Paul Schaub 2 years ago committed by Florian Schmaus
parent 28dd56a13a
commit 1a9ac238e8
  1. 28
      smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java

@ -295,14 +295,9 @@ public final class OpenPgpManager extends Manager {
throwIfNoProviderSet();
OpenPgpStore store = provider.getStore();
PGPKeyRing keys = store.generateKeyRing(ourJid);
try {
store.importSecretKey(ourJid, keys.getSecretKeys());
store.importPublicKey(ourJid, keys.getPublicKeys());
} catch (MissingUserIdOnKeyException e) {
// This should never throw, since we set our jid literally one line above this comment.
throw new AssertionError(e);
}
PGPKeyRing keys = generateKeyRing(ourJid);
importKeyRing(ourJid, keys);
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint(keys.getSecretKeys());
@ -311,6 +306,23 @@ public final class OpenPgpManager extends Manager {
return fingerprint;
}
public PGPKeyRing generateKeyRing(BareJid ourJid)
throws PGPException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException {
throwIfNoProviderSet();
PGPKeyRing keys = provider.getStore().generateKeyRing(ourJid);
return keys;
}
private void importKeyRing(BareJid ourJid, PGPKeyRing keyRing) throws IOException, PGPException {
try {
provider.getStore().importSecretKey(ourJid, keyRing.getSecretKeys());
provider.getStore().importPublicKey(ourJid, keyRing.getPublicKeys());
} catch (MissingUserIdOnKeyException e) {
// This should never throw, since we set our jid literally one line above this comment.
throw new AssertionError(e);
}
}
/**
* Return the upper-case hex encoded OpenPGP v4 fingerprint of our key pair.
*

Loading…
Cancel
Save