/// <summary> /// Converts low level CK_MECHANISM_INFO structure to high level MechanismInfo class /// </summary> /// <param name="mechanism">Mechanism</param> /// <param name="ck_mechanism_info">Low level CK_MECHANISM_INFO structure</param> internal MechanismInfo(CKM mechanism, LowLevelAPI.CK_MECHANISM_INFO ck_mechanism_info) { _mechanism = mechanism; _minKeySize = ck_mechanism_info.MinKeySize; _maxKeySize = ck_mechanism_info.MaxKeySize; _mechanismFlags = new MechanismFlags(ck_mechanism_info.Flags); }
/// <summary> /// Obtains information about a particular mechanism possibly supported by a token /// </summary> /// <param name="mechanism">Mechanism</param> /// <returns>Information about mechanism</returns> public MechanismInfo GetMechanismInfo(CKM mechanism) { LowLevelAPI.CK_MECHANISM_INFO mechanismInfo = new LowLevelAPI.CK_MECHANISM_INFO(); CKR rv = _p11.C_GetMechanismInfo(_slotId, mechanism, ref mechanismInfo); if (rv != CKR.CKR_OK) { throw new Pkcs11Exception("C_GetMechanismInfo", rv); } return(new MechanismInfo(mechanism, mechanismInfo)); }