Net.Pkcs11Interop.HighLevelAPI81.MechanismParams.CkOtpParams.CkOtpParams C# (CSharp) Method

CkOtpParams() public method

Initializes a new instance of the CkOtpParams class.
public CkOtpParams ( List parameters ) : System
parameters List List of OTP parameters
return System
        public CkOtpParams(List<CkOtpParam> parameters)
        {
            _lowLevelStruct.Params = IntPtr.Zero;
            _lowLevelStruct.Count = 0;

            if ((parameters != null) && (parameters.Count > 0))
            {
                // Allocate memory for parameters
                int ckOtpParamSize = UnmanagedMemory.SizeOf(typeof(CK_OTP_PARAM));
                _lowLevelStruct.Params = UnmanagedMemory.Allocate(ckOtpParamSize * parameters.Count);
                _lowLevelStruct.Count = Convert.ToUInt64(parameters.Count);

                // Copy paramaters to allocated memory
                for (int i = 0; i < parameters.Count; i++)
                {
                    IntPtr tempPointer = new IntPtr(_lowLevelStruct.Params.ToInt64() + (i * ckOtpParamSize));
                    UnmanagedMemory.Write(tempPointer, parameters[i].ToMarshalableStructure());
                }
            }
        }