From 6eac50c5b54bd1cb475ec96bdd2a76d6bf39602d Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Tue, 28 Dec 2021 01:40:30 +0100 Subject: [PATCH] Add documentation to SessionKey --- .../java/org/pgpainless/util/SessionKey.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/SessionKey.java b/pgpainless-core/src/main/java/org/pgpainless/util/SessionKey.java index cea8639d..72bab826 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/util/SessionKey.java +++ b/pgpainless-core/src/main/java/org/pgpainless/util/SessionKey.java @@ -9,24 +9,49 @@ import javax.annotation.Nonnull; import org.bouncycastle.openpgp.PGPSessionKey; import org.pgpainless.algorithm.SymmetricKeyAlgorithm; +/** + * A {@link SessionKey} is the symmetric key that is used to encrypt/decrypt an OpenPGP message. + * The OpenPGP message header contains a copy of the session key, encrypted for the public key of each recipient. + */ public class SessionKey { - private SymmetricKeyAlgorithm algorithm; - private byte[] key; + private final SymmetricKeyAlgorithm algorithm; + private final byte[] key; + /** + * Constructor to create a session key from a BC {@link PGPSessionKey} object. + * + * @param sessionKey BC session key + */ public SessionKey(@Nonnull PGPSessionKey sessionKey) { this(SymmetricKeyAlgorithm.fromId(sessionKey.getAlgorithm()), sessionKey.getKey()); } + /** + * Create a session key object from an algorithm and a key. + * + * @param algorithm algorithm + * @param key key + */ public SessionKey(@Nonnull SymmetricKeyAlgorithm algorithm, @Nonnull byte[] key) { this.algorithm = algorithm; this.key = key; } + /** + * Return the symmetric key algorithm. + * + * @return algorithm + */ public SymmetricKeyAlgorithm getAlgorithm() { return algorithm; } + /** + * Return the bytes of the key. + * + * @return key + */ public byte[] getKey() { byte[] copy = new byte[key.length]; System.arraycopy(key, 0, copy, 0, copy.length);