示例#1
0
 public Xchacha20poly1305State(global::NitraLibSodium.SecretStream.Xchacha20poly1305State _0)
 {
     __Instance                     = Marshal.AllocHGlobal(sizeof(global::NitraLibSodium.SecretStream.Xchacha20poly1305State.__Internal));
     __ownsNativeInstance           = true;
     NativeToManagedMap[__Instance] = this;
     *((global::NitraLibSodium.SecretStream.Xchacha20poly1305State.__Internal *)__Instance) = *((global::NitraLibSodium.SecretStream.Xchacha20poly1305State.__Internal *)_0.__Instance);
 }
        public static int Pull(global::NitraLibSodium.SecretStream.Xchacha20poly1305State state, byte[] m, ref ulong mlen_p, byte[] tag_p, byte[] c, ulong clen, byte[] ad, ulong adlen)
        {
            var __arg0 = ReferenceEquals(state, null) ? global::System.IntPtr.Zero : state.__Instance;

            fixed(ulong *__refParamPtr2 = &mlen_p)
            {
                var __arg2 = __refParamPtr2;
                var __ret  = __Internal.Pull(__arg0, MarshalHelper.ByteArrayToIntPtr(m), __arg2, MarshalHelper.ByteArrayToIntPtr(tag_p), MarshalHelper.ByteArrayToIntPtr(c), clen, MarshalHelper.ByteArrayToIntPtr(ad), adlen);

                return(__ret);
            }
        }
        public static int InitPull(global::NitraLibSodium.SecretStream.Xchacha20poly1305State state, byte[] header, byte[] k)
        {
            var __arg0 = ReferenceEquals(state, null) ? global::System.IntPtr.Zero : state.__Instance;

            if (header == null || header.Length != 24)
            {
                throw new ArgumentOutOfRangeException("header", "The dimensions of the provided array don't match the required size.");
            }
            if (k == null || k.Length != 32)
            {
                throw new ArgumentOutOfRangeException("k", "The dimensions of the provided array don't match the required size.");
            }
            var __ret = __Internal.InitPull(__arg0, header, k);

            return(__ret);
        }
        public static void Rekey(global::NitraLibSodium.SecretStream.Xchacha20poly1305State state)
        {
            var __arg0 = ReferenceEquals(state, null) ? global::System.IntPtr.Zero : state.__Instance;

            __Internal.Rekey(__arg0);
        }