











This demonstrates possibilities on encrypting, signing, verifying message using the Capicom ActiveX and javascript in a webbrowser. An ASP.NET developers can take note of this technique when you want to invoke to capicom dll to implement PKI infastructure using a browser. I know .NET SmartClient would have been another option where you can use the .NET Framework Libraries to deal with X509Certificates, but you might want to know this technique too:
Source Blog: http://www.feed-squirrel.com/index.cfm?evt=viewItem&ID=36269
Function sign(text As String, P12Path As String, P12Password As String) As String
' This function imports a PKCS#12 container (private key and certificate to a
' memory storeDim store As store
Dim signedData As signedData
Dim signer As signerSet signer = New signer
Set signedData = New signedData
Set store = New storestore.Open CAPICOM_MEMORY_STORE, "My", CAPICOM_STORE_OPEN_READ_WRITE
store.Load P12Path, P12Password, CAPICOM_KEY_STORAGE_DEFAULTsignedData.Content = text
signer.Certificate = store.Certificates.Item(1)szSignedData = signedData.sign(signer, True, CAPICOM_ENCODE_BASE64)
sign = szSignedData
End Function
function btnSignedData_OnClick()
{
var SignedData = new ActiveXObject("AutomaticSign.ASign");try
{
txtSignedData.value = SignedData.Sign(txtPlainText.value,"c:\\c.p12","1111");
}
catch (e)
{
alert("An error occurred when attempting to sign the content);
return false;
}
}
function btnVerifyData_OnClick()
{
var CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;
var CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;
var CAPICOM_VERIFY_SIGNATURE_ONLY = 0;
// instantiate the CAPICOM objects
var certificate = new ActiveXObject('CAPICOM.Certificate');
var SignedData = new ActiveXObject('CAPICOM.SignedData');
try
{
SignedData.Content=txtPlainText.value;
SignedData.Verify(txtSignedData.value, true, CAPICOM_VERIFY_SIGNATURE_ONLY);
certificate=SignedData.Certificates(2);
txtSignerData.value="Certificate :" + certificate.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) + "\n";
txtSignerData.value+= "Issuer :" + certificate.GetInfo(CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME);
}
catch (e)
{
alert(e.description);
return false;
}
alert("Signature verified");
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。