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

CkSkipjackRelayxParams() public method

Initializes a new instance of the CkSkipjackRelayxParams class.
public CkSkipjackRelayxParams ( byte oldWrappedX, byte oldPassword, byte oldPublicData, byte oldRandomA, byte newPassword, byte newPublicData, byte newRandomA ) : System
oldWrappedX byte Old wrapper key
oldPassword byte Old user-supplied password
oldPublicData byte Old key exchange public key value
oldRandomA byte Old Ra data
newPassword byte New user-supplied password
newPublicData byte New key exchange public key value
newRandomA byte New Ra data
return System
        public CkSkipjackRelayxParams(byte[] oldWrappedX, byte[] oldPassword, byte[] oldPublicData, byte[] oldRandomA, byte[] newPassword, byte[] newPublicData, byte[] newRandomA)
        {
            _lowLevelStruct.OldWrappedXLen = 0;
            _lowLevelStruct.OldWrappedX = IntPtr.Zero;
            _lowLevelStruct.OldPasswordLen = 0;
            _lowLevelStruct.OldPassword = IntPtr.Zero;
            _lowLevelStruct.OldPublicDataLen = 0;
            _lowLevelStruct.OldPublicData = IntPtr.Zero;
            _lowLevelStruct.OldRandomLen = 0;
            _lowLevelStruct.OldRandomA = IntPtr.Zero;
            _lowLevelStruct.NewPasswordLen = 0;
            _lowLevelStruct.NewPassword = IntPtr.Zero;
            _lowLevelStruct.NewPublicDataLen = 0;
            _lowLevelStruct.NewPublicData = IntPtr.Zero;
            _lowLevelStruct.NewRandomLen = 0;
            _lowLevelStruct.NewRandomA = IntPtr.Zero;

            if (oldWrappedX != null)
            {
                _lowLevelStruct.OldWrappedX = UnmanagedMemory.Allocate(oldWrappedX.Length);
                UnmanagedMemory.Write(_lowLevelStruct.OldWrappedX, oldWrappedX);
                _lowLevelStruct.OldWrappedXLen = Convert.ToUInt64(oldWrappedX.Length);
            }

            if (oldPassword != null)
            {
                _lowLevelStruct.OldPassword = UnmanagedMemory.Allocate(oldPassword.Length);
                UnmanagedMemory.Write(_lowLevelStruct.OldPassword, oldPassword);
                _lowLevelStruct.OldPasswordLen = Convert.ToUInt64(oldPassword.Length);
            }

            if (oldPublicData != null)
            {
                _lowLevelStruct.OldPublicData = UnmanagedMemory.Allocate(oldPublicData.Length);
                UnmanagedMemory.Write(_lowLevelStruct.OldPublicData, oldPublicData);
                _lowLevelStruct.OldPublicDataLen = Convert.ToUInt64(oldPublicData.Length);
            }

            if (oldRandomA != null)
            {
                _lowLevelStruct.OldRandomA = UnmanagedMemory.Allocate(oldRandomA.Length);
                UnmanagedMemory.Write(_lowLevelStruct.OldRandomA, oldRandomA);
                _lowLevelStruct.OldRandomLen = Convert.ToUInt64(oldRandomA.Length);
            }

            if (newPassword != null)
            {
                _lowLevelStruct.NewPassword = UnmanagedMemory.Allocate(newPassword.Length);
                UnmanagedMemory.Write(_lowLevelStruct.NewPassword, newPassword);
                _lowLevelStruct.NewPasswordLen = Convert.ToUInt64(newPassword.Length);
            }

            if (newPublicData != null)
            {
                _lowLevelStruct.NewPublicData = UnmanagedMemory.Allocate(newPublicData.Length);
                UnmanagedMemory.Write(_lowLevelStruct.NewPublicData, newPublicData);
                _lowLevelStruct.NewPublicDataLen = Convert.ToUInt64(newPublicData.Length);
            }

            if (newRandomA != null)
            {
                _lowLevelStruct.NewRandomA = UnmanagedMemory.Allocate(newRandomA.Length);
                UnmanagedMemory.Write(_lowLevelStruct.NewRandomA, newRandomA);
                _lowLevelStruct.NewRandomLen = Convert.ToUInt64(newRandomA.Length);
            }
        }