Package org.bouncycastle.crypto

Examples of org.bouncycastle.crypto.Digest


    public AuthorityKeyIdentifier(
        SubjectPublicKeyInfo    spki,
        GeneralNames            name,
        BigInteger              serialNumber)
    {
        Digest  digest = new SHA1Digest();
        byte[]  resBuf = new byte[digest.getDigestSize()];

        byte[] bytes = spki.getPublicKeyData().getBytes();
        digest.update(bytes, 0, bytes.length);
        digest.doFinal(resBuf, 0);

        this.keyidentifier = new DEROctetString(resBuf);
        this.certissuer = GeneralNames.getInstance(name.toASN1Object());
        this.certserno = new DERInteger(serialNumber);
    }
View Full Code Here


  public Base64URL sign(final JWSHeader header, final byte[] signingInput)
    throws JOSEException {

    ECDSAParameters initParams = getECDSAParameters(header.getAlgorithm());
    X9ECParameters x9ECParameters = initParams.getX9ECParameters();
    Digest digest = initParams.getDigest();

    ECDomainParameters ecParameterSpec = new ECDomainParameters(
      x9ECParameters.getCurve(),
      x9ECParameters.getG(),
      x9ECParameters.getN(),
      x9ECParameters.getH(),
      x9ECParameters.getSeed());

    ECPrivateKeyParameters ecPrivateKeyParameters =
      new ECPrivateKeyParameters(privateKey, ecParameterSpec);

    digest.update(signingInput, 0, signingInput.length);
    byte[] out = new byte[digest.getDigestSize()];
    digest.doFinal(out, 0);

    BigInteger[] signatureParts = doECDSA(ecPrivateKeyParameters, out);

    int rsByteArrayLength = ECDSAProvider.getSignatureByteArrayLength(header.getAlgorithm());
View Full Code Here

   */
  protected static ECDSAParameters getECDSAParameters(final JWSAlgorithm alg)
    throws JOSEException {

    ASN1ObjectIdentifier oid;
    Digest digest;

    if (alg.equals(JWSAlgorithm.ES256)) {

      oid = SECObjectIdentifiers.secp256r1;
      digest = new SHA256Digest();
View Full Code Here

      return false;
    }

    ECDSAParameters initParams = getECDSAParameters(header.getAlgorithm());
    X9ECParameters x9ECParameters = initParams.getX9ECParameters();
    Digest digest = initParams.getDigest();

    byte[] signatureBytes = signature.decode();

    // Split signature into R and S parts
    int rsByteArrayLength = ECDSAProvider.getSignatureByteArrayLength(header.getAlgorithm());

    byte[] rBytes = new byte[rsByteArrayLength / 2];
    byte[] sBytes = new byte[rsByteArrayLength / 2];

    try {
      System.arraycopy(signatureBytes, 0, rBytes, 0, rBytes.length);
      System.arraycopy(signatureBytes, rBytes.length, sBytes, 0, sBytes.length);

    } catch (Exception e) {

      throw new JOSEException("Invalid ECDSA signature format: " + e.getMessage(), e);
    }

    BigInteger r = new BigInteger(1, rBytes);
    BigInteger s = new BigInteger(1, sBytes);


    ECCurve curve = x9ECParameters.getCurve();
    ECPoint qB = curve.createPoint(x, y, false);
    ECPoint q = new ECPoint.Fp(curve, qB.getX(), qB.getY());

    ECDomainParameters ecDomainParameters = new ECDomainParameters(
      curve,
      x9ECParameters.getG(),
      x9ECParameters.getN(),
      x9ECParameters.getH(),
      x9ECParameters.getSeed());

    ECPublicKeyParameters ecPublicKeyParameters = new ECPublicKeyParameters(
      q, ecDomainParameters);

    org.bouncycastle.crypto.signers.ECDSASigner verifier =
      new org.bouncycastle.crypto.signers.ECDSASigner();

    verifier.init(false, ecPublicKeyParameters);

    digest.update(signedContent, 0, signedContent.length);
    byte[] out = new byte[digest.getDigestSize()];
    digest.doFinal(out, 0);

    return verifier.verifySignature(out, r, s);
  }
View Full Code Here

  public Base64URL sign(final ReadOnlyJWSHeader header, final byte[] signingInput)
    throws JOSEException {

    ECDSAParameters initParams = getECDSAParameters(header.getAlgorithm());
    X9ECParameters x9ECParameters = initParams.getX9ECParameters();
    Digest digest = initParams.getDigest();

    ECDomainParameters ecParameterSpec = new ECDomainParameters(
      x9ECParameters.getCurve(),
      x9ECParameters.getG(),
      x9ECParameters.getN(),
      x9ECParameters.getH(),
      x9ECParameters.getSeed());

    ECPrivateKeyParameters ecPrivateKeyParameters =
      new ECPrivateKeyParameters(privateKey, ecParameterSpec);

    digest.update(signingInput, 0, signingInput.length);
    byte[] out = new byte[digest.getDigestSize()];
    digest.doFinal(out, 0);

    BigInteger[] signatureParts = doECDSA(ecPrivateKeyParameters, out);

    int rsByteArrayLength = ECDSAProvider.getSignatureByteArrayLength(header.getAlgorithm());
View Full Code Here

   */
  protected static ECDSAParameters getECDSAParameters(final JWSAlgorithm alg)
    throws JOSEException {

    ASN1ObjectIdentifier oid;
    Digest digest;

    if (alg.equals(JWSAlgorithm.ES256)) {

      oid = SECObjectIdentifiers.secp256r1;
      digest = new SHA256Digest();
View Full Code Here

TOP

Related Classes of org.bouncycastle.crypto.Digest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.