2016-04-11 12 views
0

'un http://www.microsoft.com/downloads/default.aspx adresinde publicKey özniteliğini nasıl özdevinimli olarak yazarım ve ss http bitiş noktası. SNS iletisini SignatureChecker'un doğrulanmışSessencingSignature yöntemini kullanarak doğrulamak zorundayım. PublicKey özniteliğini iletiden nasıl alabilirim. Bunun için de kullanım yöntemi var mı. Lütfen yardım et.SignatureChecker

+0

Genel anahtar, kendi başına değil bir sertifikada sağlanır. – EJP

+0

Tüm bunları yükten alan bir kitaplık veya kullanım yöntemi var mı? –

cevap

1

Amazon'dan gelen SNS iletisi, SigningCertURL numaralı bir alanı içerir. bir dize cert içine bu konumda bayt Fetch ardından thusly ondan bir ortak anahtar olun:

/** 
* Build a PublicKey object from a cert 
* 
* @param cert the cert body 
* @return a public key 
*/ 
private PublicKey makePublicKey(String cert) { 
    try { 
     CertificateFactory fact = CertificateFactory.getInstance("X.509"); 
     InputStream stream = new ByteArrayInputStream(cert.getBytes(StandardCharsets.UTF_8)); 
     X509Certificate cer = (X509Certificate) fact.generateCertificate(stream); 
     return cer.getPublicKey(); 
    } catch (Exception e) { 
     LOGGER.error("Failed to make a public key from Amazon cert", e); 
     return null; 
    } 
} 

Sonra ikinci argüman olarak onunla signatureChecker.verifySignature çağırabilir.