thealgorithm = signingEngine.getAlgorithm(); signingEngine.update(content); signature = signingEngine.sign();
int signatureByteLength = getECSignatureByteLength(signature.getAlgorithm()); rawLength = Math.max(rawLength, signatureByteLength / 2); byte[] concatenatedSignatureBytes = new byte[rawLength * 2];
TrustedAuthoritiesCallback trustedAuthoritiesCallback = new TrustedAuthoritiesCallback(); CredentialCallback credentialCallback = new CredentialCallback(X509CertificateChainPrivateCredential.class, keyType(signature.getAlgorithm())); EntityUtil.encodeAlgorithmIdentifier(encoder, signature.getAlgorithm()); encoder.encodeBitString(signatureBytes); encoder.endSequence();
ServerCredentialCallback credentialCallback = new ServerCredentialCallback(X509CertificateChainPrivateCredential.class, keyType(signature.getAlgorithm())); EntityUtil.encodeAlgorithmIdentifier(encoder, signature.getAlgorithm()); encoder.encodeBitString(signatureBytes); encoder.endSequence();
/** * Method engineGetJCEAlgorithmString * * {@inheritDoc} */ protected String engineGetJCEAlgorithmString() { return this.signatureAlgorithm.getAlgorithm(); }
/** {@inheritDoc} */ protected String engineGetJCEAlgorithmString() { return this.signatureAlgorithm.getAlgorithm(); }
/** {@inheritDoc} */ protected String engineGetJCEAlgorithmString() { return this.signatureAlgorithm.getAlgorithm(); }
private byte[] signContent() throws SignatureException { if (trailingDigest_ != null) { if (!trailingSig_.getAlgorithm().contains("ECDSA")) { throw new UnsupportedOperationException("Signatures calculated in pieces is only supported for ECDSA."); } final byte[] digest = trailingDigest_.digest(); return generateEcdsaFixedLengthSignature(digest); } return trailingSig_.sign(); }
import java.net.URL; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.Security; import java.security.Signature; import org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class AlgoCheck { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException, ClassNotFoundException { Security.addProvider(new BouncyCastleProvider()); URL bcClassUrl = AlgoCheck.class.getClassLoader() .getResource("org/bouncycastle/jce/provider/BouncyCastleProvider.class"); System.out.println("BouncyCastleProvider class URL = " + bcClassUrl); ClassLoader loader = DigestSignatureSpi.MD5.class.getClassLoader(); URL md5ClassUrl = loader.getResource( "org/bouncycastle/jcajce/provider/asymmetric/rsa/DigestSignatureSpi$MD5.class"); System.out.println("DigestSignatureSpi.MD5 class URL = " + md5ClassUrl); Signature sign = Signature.getInstance("MD5withRSA", "BC"); System.out.println("algorithm = " + sign.getAlgorithm()); } }
@Override public Signature createSignature(final String algorithm) throws NoSuchAlgorithmException { checkNotNull(algorithm); Signature obj; try { obj = Signature.getInstance(algorithm, getProvider()); } catch (NoSuchAlgorithmException e) { logFallback(e); obj = Signature.getInstance(algorithm); } if (log.isTraceEnabled()) { log.trace("Created signature: {} ({})", obj.getAlgorithm(), obj.getProvider().getName()); } return obj; }
/** {@inheritDoc} */ protected void engineInitVerify(Key publicKey) throws XMLSignatureException { if (!(publicKey instanceof PublicKey)) { String supplied = null; if (publicKey != null) { supplied = publicKey.getClass().getName(); } String needed = PublicKey.class.getName(); Object exArgs[] = { supplied, needed }; throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", exArgs); } try { this.signatureAlgorithm.initVerify((PublicKey) publicKey); } catch (InvalidKeyException ex) { // reinstantiate Signature object to work around bug in JDK // see: http://bugs.sun.com/view_bug.do?bug_id=4953555 Signature sig = this.signatureAlgorithm; try { this.signatureAlgorithm = Signature.getInstance(signatureAlgorithm.getAlgorithm()); } catch (Exception e) { // this shouldn't occur, but if it does, restore previous // Signature LOG.debug("Exception when reinstantiating Signature: {}", e); this.signatureAlgorithm = sig; } throw new XMLSignatureException(ex); } }
@Override public final Decoder verify(final Signature engine) throws Exception { if (!engine.getAlgorithm().equalsIgnoreCase(model.getAlgorithm())) { throw new IllegalArgumentException(); } final byte[] artifactData = data(codec, model.getArtifact()); engine.update(artifactData); if (!engine.verify(getDecoder().decode(model.getSignature()))) { throw new RepositoryIntegrityException(); } final Store store = memory(); store.content(artifactData); return codec.decoder(store); }
@Override public final Decoder verify(final Signature engine) throws Exception { if (!engine.getAlgorithm().equalsIgnoreCase(model.getSignatureAlgorithm())) { throw new IllegalArgumentException(); } final byte[] artifactData = data(codec, model.getEncoded()); engine.update(artifactData); if (!engine.verify(getDecoder().decode(model.getSignature()))) { throw new RepositoryIntegrityException(); } final Store store = memory(); store.content(artifactData); return codec.decoder(store); }
@Override public final Decoder sign(final Signature engine, final Object artifact) throws Exception { final Store store = memory(); codec.encoder(store).encode(artifact); final byte[] artifactData = store.content(); engine.update(artifactData); final byte[] signatureData = engine.sign(); final String encodedArtifact = body(codec, artifactData); final String encodedSignature = getEncoder().encodeToString(signatureData); final String signatureAlgorithm = engine.getAlgorithm(); model.setArtifact(encodedArtifact); model.setSignature(encodedSignature); model.setAlgorithm(signatureAlgorithm); return codec.decoder(store); }
private void setSignatureParameters( Signature signature, ASN1Encodable params) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException { if (params != null && !DERNull.INSTANCE.equals(params)) { AlgorithmParameters sigParams = AlgorithmParameters.getInstance(signature.getAlgorithm(), signature.getProvider()); try { sigParams.init(params.toASN1Primitive().getEncoded(ASN1Encoding.DER)); } catch (IOException e) { throw new SignatureException("IOException decoding parameters: " + e.getMessage()); } if (signature.getAlgorithm().endsWith("MGF1")) { try { signature.setParameter(sigParams.getParameterSpec(PSSParameterSpec.class)); } catch (GeneralSecurityException e) { throw new SignatureException("Exception extracting parameters: " + e.getMessage()); } } } }
@Override public final Decoder sign(final Signature engine, final Object artifact) throws Exception { final Store store = memory(); codec.encoder(store).encode(artifact); final byte[] artifactData = store.content(); engine.update(artifactData); final byte[] signatureData = engine.sign(); final String encodedArtifact = body(codec, artifactData); final String encodedSignature = getEncoder().encodeToString(signatureData); final String signatureAlgorithm = engine.getAlgorithm(); model.setEncoded(encodedArtifact); model.setSignature(encodedSignature); model.setSignatureAlgorithm(signatureAlgorithm); model.setSignatureEncoding(SIGNATURE_ENCODING); return codec.decoder(store); }
private void setSignatureParameters( Signature signature, ASN1Encodable params) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException { if (params != null && !DERNull.INSTANCE.equals(params)) { AlgorithmParameters sigParams = AlgorithmParameters.getInstance(signature.getAlgorithm(), signature.getProvider()); try { sigParams.init(params.toASN1Primitive().getEncoded(ASN1Encoding.DER)); } catch (IOException e) { throw new SignatureException("IOException decoding parameters: " + e.getMessage()); } if (signature.getAlgorithm().endsWith("MGF1")) { try { signature.setParameter(sigParams.getParameterSpec(PSSParameterSpec.class)); } catch (GeneralSecurityException e) { throw new SignatureException("Exception extracting parameters: " + e.getMessage()); } } } }
AlgorithmParameters sigParams = AlgorithmParameters.getInstance(signature.getAlgorithm(), signature.getProvider()); if (signature.getAlgorithm().endsWith("MGF1"))
AlgorithmParameters sigParams = AlgorithmParameters.getInstance(signature.getAlgorithm(), signature.getProvider()); if (signature.getAlgorithm().endsWith("MGF1"))
AlgorithmParameters sigParams = AlgorithmParameters.getInstance(signature.getAlgorithm(), signature.getProvider()); if (signature.getAlgorithm().endsWith("MGF1"))