Package org.pgpainless.signature
Class SignatureUtils
- java.lang.Object
-
- org.pgpainless.signature.SignatureUtils
-
public final class SignatureUtils extends Object
Utility methods related to signatures.
-
-
Field Summary
Fields Modifier and Type Field Description static intMAX_ITERATIONS
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static DatedatePlusSeconds(Date date, long seconds)Return a new date which represents the given date plus the given amount of seconds added.static longdetermineIssuerKeyId(org.bouncycastle.openpgp.PGPSignature signature)Determine the issuer key-id of aPGPSignature.static DategetKeyExpirationDate(Date keyCreationDate, org.bouncycastle.openpgp.PGPSignature signature)Extract and return the key expiration date value from the given signature.static org.bouncycastle.openpgp.operator.PGPContentSignerBuildergetPgpContentSignerBuilderForKey(org.bouncycastle.openpgp.PGPPublicKey publicKey)Return a content signer builder for the passed public key.static StringgetSignatureDigestPrefix(org.bouncycastle.openpgp.PGPSignature signature)Return the digest prefix of the signature as hex-encoded String.static DategetSignatureExpirationDate(org.bouncycastle.openpgp.PGPSignature signature)Return the expiration date of the signature.static org.bouncycastle.openpgp.PGPSignatureGeneratorgetSignatureGeneratorFor(org.bouncycastle.openpgp.PGPPublicKey signingPubKey)Return a signature generator for the provided signing key.static org.bouncycastle.openpgp.PGPSignatureGeneratorgetSignatureGeneratorFor(org.bouncycastle.openpgp.PGPSecretKey singingKey)Return a signature generator for the provided signing key.static booleanisHardRevocation(org.bouncycastle.openpgp.PGPSignature signature)Return true if the provided signature is a hard revocation.static booleanisSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature)Return true, if the expiration date of thePGPSignaturelays in the past.static booleanisSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature, Date comparisonDate)Return true, if the expiration date of the givenPGPSignatureis past the given comparisonDate.static List<org.bouncycastle.openpgp.PGPSignature>readSignatures(byte[] encodedSignatures)Read a single, or a list ofPGPSignaturesand return them as aList.static List<org.bouncycastle.openpgp.PGPSignature>readSignatures(InputStream inputStream)Read and returnPGPSignatures.static List<org.bouncycastle.openpgp.PGPSignature>readSignatures(InputStream inputStream, int maxIterations)Read and returnPGPSignatures.static List<org.bouncycastle.openpgp.PGPSignature>readSignatures(String encodedSignatures)Parse an ASCII encoded list of OpenPGP signatures into aPGPSignatureListand return it as aList.static List<org.bouncycastle.openpgp.PGPSignature>toList(org.bouncycastle.openpgp.PGPSignatureList signatures)
-
-
-
Field Detail
-
MAX_ITERATIONS
public static final int MAX_ITERATIONS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getSignatureGeneratorFor
public static org.bouncycastle.openpgp.PGPSignatureGenerator getSignatureGeneratorFor(org.bouncycastle.openpgp.PGPSecretKey singingKey)
Return a signature generator for the provided signing key. The signature generator will follow the hash algorithm preferences of the signing key and pick the best algorithm.- Parameters:
singingKey- signing key- Returns:
- signature generator
-
getSignatureGeneratorFor
public static org.bouncycastle.openpgp.PGPSignatureGenerator getSignatureGeneratorFor(org.bouncycastle.openpgp.PGPPublicKey signingPubKey)
Return a signature generator for the provided signing key. The signature generator will follow the hash algorithm preferences of the signing key and pick the best algorithm.- Parameters:
signingPubKey- signing key- Returns:
- signature generator
-
getPgpContentSignerBuilderForKey
public static org.bouncycastle.openpgp.operator.PGPContentSignerBuilder getPgpContentSignerBuilderForKey(org.bouncycastle.openpgp.PGPPublicKey publicKey)
Return a content signer builder for the passed public key. The content signer will use a hash algorithm derived from the keys' algorithm preferences. If no preferences can be derived, the key will fall back to the default hash algorithm as set in thePolicy.- Parameters:
publicKey- public key- Returns:
- content signer builder
-
getKeyExpirationDate
public static Date getKeyExpirationDate(Date keyCreationDate, org.bouncycastle.openpgp.PGPSignature signature)
Extract and return the key expiration date value from the given signature. If the signature does not carry aKeyExpirationTimesubpacket, return null.- Parameters:
keyCreationDate- creation date of the keysignature- signature- Returns:
- key expiration date as given by the signature
-
getSignatureExpirationDate
public static Date getSignatureExpirationDate(org.bouncycastle.openpgp.PGPSignature signature)
Return the expiration date of the signature. If the signature has no expiration date,datePlusSeconds(Date, long)will return null.- Parameters:
signature- signature- Returns:
- expiration date of the signature, or null if it does not expire.
-
datePlusSeconds
public static Date datePlusSeconds(Date date, long seconds)
Return a new date which represents the given date plus the given amount of seconds added. Since '0' is a special date value in the OpenPGP specification (e.g. '0' means no expiration for expiration dates), this method will return 'null' if seconds is 0.- Parameters:
date- dateseconds- number of seconds to be added- Returns:
- date plus seconds or null if seconds is '0'
-
isSignatureExpired
public static boolean isSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature)
Return true, if the expiration date of thePGPSignaturelays in the past. If no expiration date is present in the signature, it is considered non-expired.- Parameters:
signature- signature- Returns:
- true if expired, false otherwise
-
isSignatureExpired
public static boolean isSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature, Date comparisonDate)
Return true, if the expiration date of the givenPGPSignatureis past the given comparisonDate. If no expiration date is present in the signature, it is considered non-expiring.- Parameters:
signature- signaturecomparisonDate- reference date- Returns:
- true if sig is expired at reference date, false otherwise
-
isHardRevocation
public static boolean isHardRevocation(org.bouncycastle.openpgp.PGPSignature signature)
Return true if the provided signature is a hard revocation. Hard revocations are revocation signatures which either carry a revocation reason ofRevocationAttributes.Reason.KEY_COMPROMISEDorRevocationAttributes.Reason.NO_REASON, or no reason at all.- Parameters:
signature- signature- Returns:
- true if signature is a hard revocation
-
readSignatures
public static List<org.bouncycastle.openpgp.PGPSignature> readSignatures(String encodedSignatures) throws IOException, org.bouncycastle.openpgp.PGPException
Parse an ASCII encoded list of OpenPGP signatures into aPGPSignatureListand return it as aList.- Parameters:
encodedSignatures- ASCII armored signature list- Returns:
- signature list
- Throws:
IOException- if the signatures cannot be readorg.bouncycastle.openpgp.PGPException
-
readSignatures
public static List<org.bouncycastle.openpgp.PGPSignature> readSignatures(byte[] encodedSignatures) throws IOException, org.bouncycastle.openpgp.PGPException
Read a single, or a list ofPGPSignaturesand return them as aList.- Parameters:
encodedSignatures- ASCII armored or binary signatures- Returns:
- signatures
- Throws:
IOException- if the signatures cannot be readorg.bouncycastle.openpgp.PGPException- in case of an OpenPGP error
-
readSignatures
public static List<org.bouncycastle.openpgp.PGPSignature> readSignatures(InputStream inputStream) throws IOException, org.bouncycastle.openpgp.PGPException
Read and returnPGPSignatures. This method can deal with signatures that may be armored, compressed and may contain marker packets.- Parameters:
inputStream- input stream- Returns:
- list of encountered signatures
- Throws:
IOException- in case of a stream errororg.bouncycastle.openpgp.PGPException- in case of an OpenPGP error
-
readSignatures
public static List<org.bouncycastle.openpgp.PGPSignature> readSignatures(InputStream inputStream, int maxIterations) throws IOException, org.bouncycastle.openpgp.PGPException
Read and returnPGPSignatures. This method can deal with signatures that may be armored, compressed and may contain marker packets.- Parameters:
inputStream- input streammaxIterations- number of loop iterations until reading is aborted- Returns:
- list of encountered signatures
- Throws:
IOException- in case of a stream errororg.bouncycastle.openpgp.PGPException- in case of an OpenPGP error
-
determineIssuerKeyId
public static long determineIssuerKeyId(org.bouncycastle.openpgp.PGPSignature signature)
Determine the issuer key-id of aPGPSignature. This method first inspects theIssuerKeyIDsubpacket of the signature and returns the key-id if present. If not, it inspects theIssuerFingerprintpacket and retrieves the key-id from the fingerprint. Otherwise, it returns 0.- Parameters:
signature- signature- Returns:
- signatures issuing key id
-
getSignatureDigestPrefix
public static String getSignatureDigestPrefix(org.bouncycastle.openpgp.PGPSignature signature)
Return the digest prefix of the signature as hex-encoded String.- Parameters:
signature- signature- Returns:
- digest prefix
-
-