我正在使用Spring https://www.objc.io/issues/5-ios7/getting-to-know-textkit/编写SNS http端点。我无法看到有关验证AWS cloud中的邮件签名的任何信息。我怎样才能做到这一点 ?
答案 0 :(得分:0)
这是一个非常老的问题,但也许有人对此有疑问。
方法很简单。您需要从SignatureUrl创建InputStream并基于此InputStream生成证书
InputStream inStream = url.openStream();
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(inStream);
inStream.close();
下一步,您需要使用签名。获取SHA1withRSA的实例,从您生成的证书中获取您的公钥,并使用消息中的数据更新签名
Signature sig = Signature.getInstance("SHA1withRSA");
sig.initVerify(cert.getPublicKey());
sig.update(getMessageBytesToSign(msg));
return sig.verify(Base64.decodeBase64(msg.getSignature()));
您可以在AmazonDoc
上找到完整的示例创建此方法时,只需将其用作服务的静态实用程序即可从SNS接收消息,例如。
VerifySNS.isMessageSignatureValid(msg);
msg属性是SNSTopic消息。