public static String x5tS256(X509Certificate certificate) { return base64urlThumbprint(certificate, "SHA-256"); }
void putBigIntAsBase64UrlEncodedParam(Map<String,Object> params, String parameterName, BigInteger value) { String base64UrlValue = BigEndianBigInteger.toBase64Url(value); params.put(parameterName, base64UrlValue); }
public void setSigningKey(final String signingSecretKey) { this.signingKey = new AesKey(signingSecretKey.getBytes()); }
private PublicKey getPublic() throws JoseException, InvalidKeySpecException { RsaKeyUtil rsaKeyUtil = new RsaKeyUtil(); return rsaKeyUtil.fromPemEncoded(config.getPublicKey()); }
public EllipticCurveJsonWebKey(Map<String, Object> params, String jcaProvider) throws JoseException { super(params, jcaProvider); curveName = getString(params, CURVE_MEMBER_NAME, true); ECParameterSpec curve = EllipticCurves.getSpec(curveName); BigInteger x = getBigIntFromBase64UrlEncodedParam(params, X_MEMBER_NAME, true); BigInteger y = getBigIntFromBase64UrlEncodedParam(params, Y_MEMBER_NAME, true); EcKeyUtil keyUtil = new EcKeyUtil(jcaProvider, null); key = keyUtil.publicKey(x, y, curve); checkForBareKeyCertMismatch(); if (params.containsKey(PRIVATE_KEY_MEMBER_NAME)) { BigInteger d = getBigIntFromBase64UrlEncodedParam(params, PRIVATE_KEY_MEMBER_NAME, false); privateKey = keyUtil.privateKey(d, curve); } removeFromOtherParams(CURVE_MEMBER_NAME, X_MEMBER_NAME, Y_MEMBER_NAME, PRIVATE_KEY_MEMBER_NAME); }
public static byte[] toByteArray(BigInteger bigInteger, int minArrayLength) { byte[] bytes = toByteArray(bigInteger); if (minArrayLength > bytes.length) { bytes = ByteUtil.concat(new byte[minArrayLength - bytes.length], bytes); } return bytes; }
public RSAPrivateKey privateKey(BigInteger modulus, BigInteger privateExponent) throws JoseException { RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(modulus, privateExponent); return getRsaPrivateKey(keySpec); }
public void setX509CertSha1ThumbprintHeaderValue(X509Certificate certificate) { String x5t = X509Util.x5t(certificate); setX509CertSha1ThumbprintHeaderValue(x5t); }
public KeyPair generateKeyPair(int bits) throws JoseException { KeyPairGenerator keyGenerator = getKeyPairGenerator(); if (secureRandom == null) { keyGenerator.initialize(bits); } else { keyGenerator.initialize(bits, secureRandom); } return keyGenerator.generateKeyPair(); } }
public void setX509CertSha256ThumbprintHeaderValue(X509Certificate certificate) { String x5tS256 = X509Util.x5tS256(certificate); setX509CertSha256ThumbprintHeaderValue(x5tS256); }
@Override public String toString() { return ByteUtil.bitLength(getEncoded().length) + " bit " + ALGORITHM + " key"; } }
BigInteger getBigIntFromBase64UrlEncodedParam(Map<String, Object> params, String parameterName, boolean required) throws JoseException { String base64UrlValue = getString(params, parameterName, required); return BigEndianBigInteger.fromBase64Url(base64UrlValue); }
public static BigInteger fromBase64Url(String base64urlEncodedBytes) { Base64Url base64Url = new Base64Url(); byte[] magnitude = base64Url.base64UrlDecode(base64urlEncodedBytes); return fromBytes(magnitude); } public static byte[] toByteArray(BigInteger bigInteger, int minArrayLength)
private PublicKey getPublic() throws JoseException, InvalidKeySpecException { RsaKeyUtil rsaKeyUtil = new RsaKeyUtil(); return rsaKeyUtil.fromPemEncoded(config.getPublicKey()); }
public static String toBase64Url(BigInteger bigInteger) { Base64Url base64Url = new Base64Url(); byte[] bytes = toByteArray(bigInteger); return base64Url.base64UrlEncode(bytes); }
public static String x5t(X509Certificate certificate) { return base64urlThumbprint(certificate, "SHA-1"); }
public RSAPrivateKey privateKey(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger primeP, BigInteger primeQ, BigInteger primeExponentP, BigInteger primeExponentQ, BigInteger crtCoefficient) throws JoseException { RSAPrivateCrtKeySpec keySpec = new RSAPrivateCrtKeySpec(modulus, publicExponent, privateExponent, primeP, primeQ, primeExponentP, primeExponentQ, crtCoefficient); return getRsaPrivateKey(keySpec); }
public String getX509CertificateSha1Thumbprint(boolean allowFallbackDeriveFromX5c) { String result = x5t; if (result == null && allowFallbackDeriveFromX5c) { X509Certificate leafCertificate = getLeafCertificate(); if (leafCertificate != null) { result = X509Util.x5t(leafCertificate); } } return result; }
void putBigIntAsBase64UrlEncodedParam(Map<String,Object> params, String parameterName, BigInteger value, int minLength) { String base64UrlValue = BigEndianBigInteger.toBase64Url(value, minLength); params.put(parameterName, base64UrlValue); }
public static String toBase64Url(BigInteger bigInteger, int minByteArrayLength) { Base64Url base64Url = new Base64Url(); byte[] bytes = toByteArray(bigInteger, minByteArrayLength); return base64Url.base64UrlEncode(bytes); } }