Package org.pgpainless.signature
Class SignatureUtils
- java.lang.Object
-
- org.pgpainless.signature.SignatureUtils
-
public final class SignatureUtils extends java.lang.Object
Utility methods related to signatures.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Date
datePlusSeconds(java.util.Date date, long seconds)
Return a new date which represents the given date plus the given amount of seconds added.static long
determineIssuerKeyId(org.bouncycastle.openpgp.PGPSignature signature)
Determine the issuer key-id of aPGPSignature
.static java.util.Date
getKeyExpirationDate(java.util.Date keyCreationDate, org.bouncycastle.openpgp.PGPSignature signature)
Extract and return the key expiration date value from the given signature.static java.lang.String
getSignatureDigestPrefix(org.bouncycastle.openpgp.PGPSignature signature)
Return the digest prefix of the signature as hex-encoded String.static java.util.Date
getSignatureExpirationDate(org.bouncycastle.openpgp.PGPSignature signature)
Return the expiration date of the signature.static org.bouncycastle.openpgp.PGPSignatureGenerator
getSignatureGeneratorFor(org.bouncycastle.openpgp.PGPPublicKey signingPubKey)
Return a signature generator for the provided signing key.static org.bouncycastle.openpgp.PGPSignatureGenerator
getSignatureGeneratorFor(org.bouncycastle.openpgp.PGPSecretKey singingKey)
Return a signature generator for the provided signing key.static boolean
isHardRevocation(org.bouncycastle.openpgp.PGPSignature signature)
Return true if the provided signature is a hard revocation.static boolean
isSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature)
Return true, if the expiration date of thePGPSignature
lays in the past.static boolean
isSignatureExpired(org.bouncycastle.openpgp.PGPSignature signature, java.util.Date comparisonDate)
Return true, if the expiration date of the givenPGPSignature
is past the given comparisonDate
.static java.util.List<org.bouncycastle.openpgp.PGPSignature>
readSignatures(byte[] encodedSignatures)
Read a single, or a list ofPGPSignatures
and return them as aList
.static java.util.List<org.bouncycastle.openpgp.PGPSignature>
readSignatures(java.io.InputStream inputStream)
Read and returnPGPSignatures
.static java.util.List<org.bouncycastle.openpgp.PGPSignature>
readSignatures(java.lang.String encodedSignatures)
Parse an ASCII encoded list of OpenPGP signatures into aPGPSignatureList
and return it as aList
.static java.util.List<org.bouncycastle.openpgp.PGPSignature>
toList(org.bouncycastle.openpgp.PGPSignatureList signatures)
-
-
-
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
-
getKeyExpirationDate
public static java.util.Date getKeyExpirationDate(java.util.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 aKeyExpirationTime
subpacket, return null.- Parameters:
keyCreationDate
- creation date of the keysignature
- signature- Returns:
- key expiration date as given by the signature
-
getSignatureExpirationDate
public static java.util.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 java.util.Date datePlusSeconds(java.util.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 value in the OpenPGP specification when it comes to dates (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 thePGPSignature
lays 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, java.util.Date comparisonDate)
Return true, if the expiration date of the givenPGPSignature
is 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_COMPROMISED
orRevocationAttributes.Reason.NO_REASON
, or no reason at all.- Parameters:
signature
- signature- Returns:
- true if signature is a hard revocation
-
readSignatures
public static java.util.List<org.bouncycastle.openpgp.PGPSignature> readSignatures(java.lang.String encodedSignatures) throws java.io.IOException, org.bouncycastle.openpgp.PGPException
Parse an ASCII encoded list of OpenPGP signatures into aPGPSignatureList
and return it as aList
.- Parameters:
encodedSignatures
- ASCII armored signature list- Returns:
- signature list
- Throws:
java.io.IOException
- if the signatures cannot be readorg.bouncycastle.openpgp.PGPException
-
readSignatures
public static java.util.List<org.bouncycastle.openpgp.PGPSignature> readSignatures(byte[] encodedSignatures) throws java.io.IOException, org.bouncycastle.openpgp.PGPException
Read a single, or a list ofPGPSignatures
and return them as aList
.- Parameters:
encodedSignatures
- ASCII armored or binary signatures- Returns:
- signatures
- Throws:
java.io.IOException
- if the signatures cannot be readorg.bouncycastle.openpgp.PGPException
- in case of an OpenPGP error
-
readSignatures
public static java.util.List<org.bouncycastle.openpgp.PGPSignature> readSignatures(java.io.InputStream inputStream) throws java.io.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:
java.io.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 theIssuerKeyID
subpacket of the signature and returns the key-id if present. If not, it inspects theIssuerFingerprint
packet and retrieves the key-id from the fingerprint. Otherwise it returns 0.- Parameters:
signature
- signature- Returns:
- signatures issuing key id
-
getSignatureDigestPrefix
public static java.lang.String getSignatureDigestPrefix(org.bouncycastle.openpgp.PGPSignature signature)
Return the digest prefix of the signature as hex-encoded String.- Parameters:
signature
- signature- Returns:
- digest prefix
-
toList
public static java.util.List<org.bouncycastle.openpgp.PGPSignature> toList(org.bouncycastle.openpgp.PGPSignatureList signatures)
-
-