PKCS11 ライブラリを使用して xml ファイルに署名しようとしていますが、署名しようとするとエラーが発生します。これが私のコードで、例外行を指摘しました。ComputeSignature メソッドが例外を返し、混乱しています。
...
ObjectHandle publicKey = null;
ObjectHandle privateKey = null;
List<ObjectAttribute> publicKeyAttributes = new List<ObjectAttribute>();
publicKeyAttributes.Add(new ObjectAttribute(CKA.CKA_TOKEN, true));
publicKeyAttributes.Add(new ObjectAttribute(CKA.CKA_LABEL, "label"));
session.FindObjectsInit(publicKeyAttributes);
List<ObjectHandle> oObjCollection = session.FindObjects(1);
List<ObjectHandle> foundPublicKeys = session.FindAllObjects(publicKeyAttributes);
List<ObjectAttribute> objectAttributess = session.GetAttributeValue(foundPublicKeys[0], new List<CKA>() { CKA.CKA_ID, CKA.CKA_LABEL, CKA.CKA_VALUE });
byte[] ckaIdd = objectAttributess[0].GetValueAsByteArray();
string ckaLabel = objectAttributess[1].GetValueAsString();
byte[] ckaValue = objectAttributess[2].GetValueAsByteArray();
var _rawData = ckaValue ?? throw new ArgumentNullException(nameof(ckaValue));
var _parsedCertificate = new X509Certificate2(_rawData);
Cer c = new Cer();
var Key = c.GetRSAPublicKey(_parsedCertificate);
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Users\MyUser\Desktop\SampleFile.xml");
SignedXml signedXml = new SignedXml(doc);
signedXml.SigningKey = Key;
Reference reference = new Reference();
reference.Uri = "";
XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
reference.AddTransform(env);
signedXml.AddReference(reference);
signedXml.ComputeSignature(); // Error occurs in this line
}}
signedXml.ComputeSignature() メソッドが発生する System.NotSupportedException
HSM デバイスから取得したキーを使用して xml ファイルに署名するにはどうすればよいですか?