We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement support for explicit EC parameters for:
Example code for import:
X500DistinguishedName subject = new X500DistinguishedName("CN=Test"); using ECDsa ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256); CertificateRequest request = new CertificateRequest(subject, ecdsa, HashAlgorithmName.SHA256); using X509Certificate2 certificate = request.CreateSelfSigned(DateTime.Now, DateTime.Now.AddDays(2)); byte[] p12Data = certificate.Export(X509ContentType.Pkcs12, "Password"); using MemoryStream ms = new MemoryStream(p12Data); Org.BouncyCastle.Pkcs.Pkcs12Store st = new Org.BouncyCastle.Pkcs.Pkcs12Store(ms, "Password".ToCharArray()); string? alias = st.Aliases.Cast<string>().FirstOrDefault(p => st.IsKeyEntry(p)); Org.BouncyCastle.Pkcs.X509CertificateEntry keyEntryX = st.GetCertificate(alias); Org.BouncyCastle.Pkcs.AsymmetricKeyEntry keyEntry = st.GetKey(alias); ECPrivateKeyParameters ecPrivateKey = (ECPrivateKeyParameters)keyEntry.Key; using ISession session = slot.OpenSession(SessionType.ReadWrite); X9ECParameters x9Parameters = new X9ECParameters(ecPrivateKey.Parameters.Curve, ecPrivateKey.Parameters.G, ecPrivateKey.Parameters.N, ecPrivateKey.Parameters.H, ecPrivateKey.Parameters.GetSeed()); List<IObjectAttribute> privateKeyAttributes = new List<IObjectAttribute>() { session.Factories.ObjectAttributeFactory.Create(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_TOKEN, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_PRIVATE, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_MODIFIABLE, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_SIGN, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_SIGN_RECOVER, false), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_DECRYPT, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_UNWRAP, true), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_ID, Encoding.ASCII.GetBytes("test key")), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_LABEL, "test key"), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_KEY_TYPE, CKK.CKK_ECDSA), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_EC_PARAMS, x9Parameters.ToAsn1Object().GetEncoded()), session.Factories.ObjectAttributeFactory.Create(CKA.CKA_VALUE, ecPrivateKey.D.ToByteArrayUnsigned()) }; _ = session.CreateObject(privateKeyAttributes);
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Implement support for explicit EC parameters for:
Example code for import:
The text was updated successfully, but these errors were encountered: