internal Pkcs11MechanismInfo(CKM mechanism, IMechanismInfo mechanismInfo)
 {
     Mechanism       = mechanism;
     MinKeySize      = mechanismInfo.MinKeySize;
     MaxKeySize      = mechanismInfo.MaxKeySize;
     Flags           = mechanismInfo.MechanismFlags.Flags;
     Hw              = mechanismInfo.MechanismFlags.Hw;
     Encrypt         = mechanismInfo.MechanismFlags.Encrypt;
     Decrypt         = mechanismInfo.MechanismFlags.Decrypt;
     Digest          = mechanismInfo.MechanismFlags.Digest;
     Sign            = mechanismInfo.MechanismFlags.Sign;
     SignRecover     = mechanismInfo.MechanismFlags.SignRecover;
     Verify          = mechanismInfo.MechanismFlags.Verify;
     VerifyRecover   = mechanismInfo.MechanismFlags.VerifyRecover;
     Generate        = mechanismInfo.MechanismFlags.Generate;
     GenerateKeyPair = mechanismInfo.MechanismFlags.GenerateKeyPair;
     Wrap            = mechanismInfo.MechanismFlags.Wrap;
     Unwrap          = mechanismInfo.MechanismFlags.Unwrap;
     Derive          = mechanismInfo.MechanismFlags.Derive;
     Extension       = mechanismInfo.MechanismFlags.Extension;
     EcFp            = mechanismInfo.MechanismFlags.EcFp;
     EcF2m           = mechanismInfo.MechanismFlags.EcF2m;
     EcEcParameters  = mechanismInfo.MechanismFlags.EcEcParameters;
     EcNamedCurve    = mechanismInfo.MechanismFlags.EcNamedCurve;
     EcUncompress    = mechanismInfo.MechanismFlags.EcUncompress;
     EcCompress      = mechanismInfo.MechanismFlags.EcCompress;
 }
Example #2
0
        private List <Pkcs11MechanismInfo> ReadMechanisms()
        {
            List <Pkcs11MechanismInfo> mechanisms = new List <Pkcs11MechanismInfo>();

            foreach (CKM mechanism in _slot.GetMechanismList())
            {
                IMechanismInfo mechanismInfo = _slot.GetMechanismInfo(mechanism);
                mechanisms.Add(new Pkcs11MechanismInfo(mechanism, mechanismInfo));
            }

            return(mechanisms);
        }
Example #3
0
        public void _01_BasicMechanismListAndInfoTest()
        {
            using (IPkcs11Library pkcs11Library = Settings.Factories.Pkcs11LibraryFactory.LoadPkcs11Library(Settings.Factories, Settings.Pkcs11LibraryPath, Settings.AppType))
            {
                // Find first slot with token present
                ISlot slot = Helpers.GetUsableSlot(pkcs11Library);

                // Get supported mechanisms
                List <CKM> mechanisms = slot.GetMechanismList();

                Assert.IsTrue(mechanisms.Count > 0);

                // Analyze first supported mechanism
                IMechanismInfo mechanismInfo = slot.GetMechanismInfo(mechanisms[0]);

                // Do something interesting with mechanism info
                Assert.IsNotNull(mechanismInfo.MechanismFlags);
            }
        }