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);
}
}