1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-06-25 21:14:49 +02:00
pgpainless/pgpainless-core/src/main/java/org/pgpainless/signature/DetachedSignature.java

101 lines
3 KiB
Java
Raw Normal View History

2020-08-24 16:26:29 +02:00
/*
* Copyright 2020 Paul Schaub.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
2021-04-26 13:38:12 +02:00
package org.pgpainless.signature;
2020-08-24 14:55:06 +02:00
2021-04-26 13:38:12 +02:00
import org.bouncycastle.openpgp.PGPKeyRing;
2020-08-24 14:55:06 +02:00
import org.bouncycastle.openpgp.PGPSignature;
import org.pgpainless.key.OpenPgpV4Fingerprint;
2021-04-26 13:38:12 +02:00
import org.pgpainless.key.SubkeyIdentifier;
2020-08-24 14:55:06 +02:00
/**
* Tuple-class which bundles together a signature, the signing key that created the signature,
* an identifier of the signing key and a record of whether or not the signature was verified.
*/
2020-08-24 14:55:06 +02:00
public class DetachedSignature {
private final PGPSignature signature;
2021-04-26 13:38:12 +02:00
private final PGPKeyRing signingKeyRing;
private final SubkeyIdentifier signingKeyIdentifier;
2020-08-24 14:55:06 +02:00
private boolean verified;
/**
* Create a new {@link DetachedSignature} object.
*
* @param signature signature
* @param signingKeyRing signing key that created the signature
* @param signingKeyIdentifier identifier of the used signing key
*/
2021-04-26 13:38:12 +02:00
public DetachedSignature(PGPSignature signature, PGPKeyRing signingKeyRing, SubkeyIdentifier signingKeyIdentifier) {
2020-08-24 14:55:06 +02:00
this.signature = signature;
2021-04-26 13:38:12 +02:00
this.signingKeyRing = signingKeyRing;
this.signingKeyIdentifier = signingKeyIdentifier;
2020-08-24 14:55:06 +02:00
}
/**
* Mark this {@link DetachedSignature} as verified.
*
* @param verified verified
*/
2020-08-24 14:55:06 +02:00
public void setVerified(boolean verified) {
this.verified = verified;
}
/**
* Return true iff the signature is verified.
*
* @return verified
*/
2020-08-24 14:55:06 +02:00
public boolean isVerified() {
return verified;
}
/**
* Return the OpenPGP signature.
*
* @return signature
*/
2020-08-24 14:55:06 +02:00
public PGPSignature getSignature() {
return signature;
}
/**
* Return an identifier pointing to the exact signing key which was used to create this signature.
*
* @return signing key identifier
*/
2021-04-26 13:38:12 +02:00
public SubkeyIdentifier getSigningKeyIdentifier() {
return signingKeyIdentifier;
}
/**
* Return the key ring that contains the signing key that created this signature.
*
* @return key ring
*/
2021-04-26 13:38:12 +02:00
public PGPKeyRing getSigningKeyRing() {
return signingKeyRing;
}
/**
* Return the {@link OpenPgpV4Fingerprint} of the key that created the signature.
*
* @return fingerprint of the signing key
*/
2021-04-26 13:38:12 +02:00
@Deprecated
2020-08-24 14:55:06 +02:00
public OpenPgpV4Fingerprint getFingerprint() {
2021-04-26 13:38:12 +02:00
return signingKeyIdentifier.getSubkeyFingerprint();
2020-08-24 14:55:06 +02:00
}
}