Class BouncyCastleGpgSigner


  • public class BouncyCastleGpgSigner
    extends GpgSigner
    GPG Signer using BouncyCastle library
    • Constructor Detail

      • BouncyCastleGpgSigner

        public BouncyCastleGpgSigner()
        Create a new instance.

        The BounceCastleProvider will be registered if necessary.

    • Method Detail

      • registerBouncyCastleProviderIfNecessary

        private static void registerBouncyCastleProviderIfNecessary()
      • canLocateSigningKey

        public boolean canLocateSigningKey​(@Nullable
                                           java.lang.String gpgSigningKey,
                                           PersonIdent committer,
                                           CredentialsProvider credentialsProvider)
                                    throws CanceledException
        Description copied from class: GpgSigner
        Indicates if a signing key is available for the specified committer and/or signing key.
        Specified by:
        canLocateSigningKey in class GpgSigner
        Parameters:
        gpgSigningKey - the signing key to locate (passed as is to the GPG signing tool as is; eg., value of user.signingkey)
        committer - the signing identity (to help with key lookup in case signing key is not specified)
        credentialsProvider - provider to use when querying for signing key credentials (eg. passphrase)
        Returns:
        true if a signing key is available, false otherwise
        Throws:
        CanceledException - when signing was canceled (eg., user aborted when entering passphrase)
      • sign

        public void sign​(@NonNull
                         CommitBuilder commit,
                         @Nullable
                         java.lang.String gpgSigningKey,
                         @NonNull
                         PersonIdent committer,
                         CredentialsProvider credentialsProvider)
                  throws CanceledException
        Description copied from class: GpgSigner
        Signs the specified commit.

        Implementors should obtain the payload for signing from the specified commit via CommitBuilder.build() and create a proper GpgSignature. The generated signature must be set on the specified commit (see CommitBuilder.setGpgSignature(GpgSignature)).

        Any existing signature on the commit must be discarded prior obtaining the payload via CommitBuilder.build().

        Specified by:
        sign in class GpgSigner
        Parameters:
        commit - the commit to sign (must not be null and must be complete to allow proper calculation of payload)
        gpgSigningKey - the signing key to locate (passed as is to the GPG signing tool as is; eg., value of user.signingkey)
        committer - the signing identity (to help with key lookup in case signing key is not specified)
        credentialsProvider - provider to use when querying for signing key credentials (eg. passphrase)
        Throws:
        CanceledException - when signing was canceled (eg., user aborted when entering passphrase)