/extern/spongycastle/pkix/src/main/java/org/spongycastle/operator/bc/BcDSAContentVerifierProviderBuilder.java

https://gitlab.com/vizilo/fdroidclient · Java · 40 lines · 33 code · 7 blank · 0 comment · 0 complexity · 6e94adf63c6be0b4e2a373aaa5563193 MD5 · raw file

  1. package org.spongycastle.operator.bc;
  2. import java.io.IOException;
  3. import org.spongycastle.asn1.x509.AlgorithmIdentifier;
  4. import org.spongycastle.asn1.x509.SubjectPublicKeyInfo;
  5. import org.spongycastle.crypto.Digest;
  6. import org.spongycastle.crypto.Signer;
  7. import org.spongycastle.crypto.params.AsymmetricKeyParameter;
  8. import org.spongycastle.crypto.signers.DSADigestSigner;
  9. import org.spongycastle.crypto.signers.DSASigner;
  10. import org.spongycastle.crypto.util.PublicKeyFactory;
  11. import org.spongycastle.operator.DigestAlgorithmIdentifierFinder;
  12. import org.spongycastle.operator.OperatorCreationException;
  13. public class BcDSAContentVerifierProviderBuilder
  14. extends BcContentVerifierProviderBuilder
  15. {
  16. private DigestAlgorithmIdentifierFinder digestAlgorithmFinder;
  17. public BcDSAContentVerifierProviderBuilder(DigestAlgorithmIdentifierFinder digestAlgorithmFinder)
  18. {
  19. this.digestAlgorithmFinder = digestAlgorithmFinder;
  20. }
  21. protected Signer createSigner(AlgorithmIdentifier sigAlgId)
  22. throws OperatorCreationException
  23. {
  24. AlgorithmIdentifier digAlg = digestAlgorithmFinder.find(sigAlgId);
  25. Digest dig = digestProvider.get(digAlg);
  26. return new DSADigestSigner(new DSASigner(), dig);
  27. }
  28. protected AsymmetricKeyParameter extractKeyParameters(SubjectPublicKeyInfo publicKeyInfo)
  29. throws IOException
  30. {
  31. return PublicKeyFactory.createKey(publicKeyInfo);
  32. }
  33. }