我的应用程序正在使用bouncycastle来解码比Java本地X509Certificate提供的证书更深的证书,实际上,我具有有弹性的城堡证书(org.bouncycastle.asn1.x509.Certificate
)。
我的问题是如何安全地将org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
转换为java.security.Publickey
。 ?
我想使用标准的Java签名方法java.security.Signature
而不是BouncyCastle替代方法。
Signature sig = Signature.getInstance(signatureAlgorithm.getAlgorithm().getId());
sig.initVerify(getPublicKey());
sig.update(content);
return sig.verify(signature);
答案 0 :(得分:2)
一种转换密钥的方法是使用RSAKeyParameter和RSAPublicKeySpec使用“模数和指数”“重建”密钥。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<script type=text/javascript>
$(function() {
$('a#like').bind('click', function() {
$.getJSON('/ulk', {
p: pid
}, function(data) {
$("#result2").text(data.result);
});
return false;
});
});
</script>
<br/><br/>
{% for p in posts %}
{% if p.upvotes %}
{% set pupvotes = p.upvotes %}
{% else %}
{% set pupvotes = 0 %}
{% endif %}
<p>{{ p.author.username }} says: <b>{{ p.body }}</b>
<a href="#" id=like>
<button id="{{ p.id }}" onclick="pid={{ p.id }};pvts = {{ pupvotes }} +1;myF1();">{{ pupvotes }} Likes</button>
</a>
</p>
<script type=text/javascript>
function myF1() {
$( "#" + pid ).text(pvts + ' Likes');
$('#' + pid).on('click', function() {
$(this).prop('disabled', true);
});
}
</script>
{%endfor%}
<br/>
<span id=result2>...</span>
</body>
</html>