@Override public Iterable<ProtocolSignature> sign(ByteStringMessage<ProtocolWaveletDelta> delta) { return ImmutableList.of(signer.sign(delta.getByteString().toByteArray())); }
public SignerInfo getSignerInfo() { return signer.getSignerInfo(); }
@Override protected void setUp() throws Exception { super.setUp(); signerInfo = new SignerInfo(HashAlgorithm.SHA256, ImmutableList.of(CertConstantUtil.SERVER_PUB_CERT, CertConstantUtil.INTERMEDIATE_PUB_CERT), DOMAIN); signer = new WaveSigner(SignatureAlgorithm.SHA1_RSA, CertConstantUtil.SERVER_PRIV_KEY, signerInfo); }
@Override protected void setUp() throws Exception { super.setUp(); signerInfo = new SignerInfo(HashAlgorithm.SHA256, ImmutableList.of(CertConstantUtil.SERVER_PUB_CERT, CertConstantUtil.INTERMEDIATE_PUB_CERT), DOMAIN); signer = new WaveSigner(SignatureAlgorithm.SHA1_RSA, CertConstantUtil.SERVER_PRIV_KEY, signerInfo); }
public void testSpeed() throws Exception { byte[] payload = "hello".getBytes(); long start = System.currentTimeMillis(); long ops = 0; while (System.currentTimeMillis() < start + 1000L) { ProtocolSignature signature = signer.sign(payload); ++ops; } long stop = System.currentTimeMillis(); System.out.println(String.format("%.2f ms per signature", (stop-start)/ (double)ops)); }
/** * Returns a WaveSigner. * @param privateKeyStream the stream from which to read the private key. The * key must be in PKCS#8-PEM-encoded format. * @param certStreams a list of streams from which to read the certificate * chain. The first stream in the list must have the target certificate * (i.e., the certificate issued to the signer). * @param domain The domain for which the certificate was issued. This should * match the CN in the targetcertificate. * @return a WaveSigner * @throws SignatureException if the private key or certificates cannot be * parsed. */ public WaveSigner getSigner(InputStream privateKeyStream, Iterable<? extends InputStream> certStreams, String domain) throws SignatureException { PrivateKey privateKey = getPrivateKey(privateKeyStream); List<X509Certificate> certs = getCertificates(certStreams); SignerInfo signerInfo = new SignerInfo(HashAlgorithm.SHA256, certs, domain); return new WaveSigner(SignatureAlgorithm.SHA1_RSA, privateKey, signerInfo); }
@Override public String getDomain() { return signer.getSignerInfo().getDomain(); }
public void testSpeed() throws Exception { byte[] payload = "hello".getBytes(); long start = System.currentTimeMillis(); long ops = 0; while (System.currentTimeMillis() < start + 1000L) { ProtocolSignature signature = signer.sign(payload); ++ops; } long stop = System.currentTimeMillis(); System.out.println(String.format("%.2f ms per signature", (stop-start)/ (double)ops)); }
public void testGetSigner() throws Exception { InputStream keyStream = new ByteArrayInputStream(PRIVATE_KEY.getBytes()); InputStream certStream = new ByteArrayInputStream(CERTIFICATE.getBytes()); List<InputStream> certStreams = ImmutableList.of(certStream); String domain = "example.com"; WaveSignerFactory factory = new WaveSignerFactory(); WaveSigner signer = factory.getSigner(keyStream, certStreams, domain); ProtocolSignature signature = signer.sign(MESSAGE); assertTrue(Arrays.equals(SIGNATURE, signature.getSignatureBytes().toByteArray())); assertTrue(Arrays.equals(getSignerInfo().getSignerId(), signature.getSignerId().toByteArray())); }
public void testGetSigner() throws Exception { InputStream keyStream = new ByteArrayInputStream(PRIVATE_KEY.getBytes()); InputStream certStream = new ByteArrayInputStream(CERTIFICATE.getBytes()); List<InputStream> certStreams = ImmutableList.of(certStream); String domain = "example.com"; WaveSignerFactory factory = new WaveSignerFactory(); WaveSigner signer = factory.getSigner(keyStream, certStreams, domain); ProtocolSignature signature = signer.sign(MESSAGE); assertTrue(Arrays.equals(SIGNATURE, signature.getSignatureBytes().toByteArray())); assertTrue(Arrays.equals(getSignerInfo().getSignerId(), signature.getSignerId().toByteArray())); }
public void testSign() throws Exception { byte[] payload = "hello".getBytes(); ProtocolSignature signature = signer.sign(payload); assertEquals(SignatureAlgorithm.SHA1_RSA, signature.getSignatureAlgorithm()); assertEquals("zBYbw+lLkXGao+LfNWbv/faS+yAlsAmUfCNqXBxeFtI=", base64(signature.getSignerId().toByteArray())); assertEquals("TMX5+6tJnEfso3KnbWygPfGBKXtFjRk6K/SQHyj+O5/dMuGeh5n/Da3v/" + "Cq13LcRie18dxUWMginQUGrsgseqse5orT0C4i0P6ybSxwUZ8OfFnx3lD5K4ME" + "ceB+yAMCsnoUZA/F52ullE/aMpv9LIFmNl4QtlvKJmF3UlJCJe/M=", base64(signature.getSignatureBytes().toByteArray())); }
public void testSign() throws Exception { byte[] payload = "hello".getBytes(); ProtocolSignature signature = signer.sign(payload); assertEquals(SignatureAlgorithm.SHA1_RSA, signature.getSignatureAlgorithm()); assertEquals("zBYbw+lLkXGao+LfNWbv/faS+yAlsAmUfCNqXBxeFtI=", base64(signature.getSignerId().toByteArray())); assertEquals("TMX5+6tJnEfso3KnbWygPfGBKXtFjRk6K/SQHyj+O5/dMuGeh5n/Da3v/" + "Cq13LcRie18dxUWMginQUGrsgseqse5orT0C4i0P6ybSxwUZ8OfFnx3lD5K4ME" + "ceB+yAMCsnoUZA/F52ullE/aMpv9LIFmNl4QtlvKJmF3UlJCJe/M=", base64(signature.getSignatureBytes().toByteArray())); }