コード例 #1
0
ファイル: SecBuffer.cs プロジェクト: codehz/winsilo
        public static SecBuffer CreateForChannelBinding(byte[] channel_binding_token)
        {
            SEC_CHANNEL_BINDINGS sec_channel_bind = new SEC_CHANNEL_BINDINGS();

            sec_channel_bind.cbApplicationDataLength = channel_binding_token.Length;
            sec_channel_bind.dwApplicationDataOffset = Marshal.SizeOf(typeof(SEC_CHANNEL_BINDINGS));
            using (var binding = new SafeStructureInOutBuffer <SEC_CHANNEL_BINDINGS>(sec_channel_bind, channel_binding_token.Length, true)) {
                binding.Data.WriteBytes(channel_binding_token);
                return(new SecBuffer(SecBufferType.ChannelBindings, binding.ToArray()));
            }
        }
コード例 #2
0
        internal override SecBuffer ToBuffer(DisposableList list)
        {
            SEC_CHANNEL_BINDINGS sec_channel_bind = new SEC_CHANNEL_BINDINGS();

            sec_channel_bind.cbApplicationDataLength = _channel_binding_token.Length;
            sec_channel_bind.dwApplicationDataOffset = Marshal.SizeOf(typeof(SEC_CHANNEL_BINDINGS));
            using (var binding = new SafeStructureInOutBuffer <SEC_CHANNEL_BINDINGS>(sec_channel_bind, _channel_binding_token.Length, true))
            {
                binding.Data.WriteBytes(_channel_binding_token);
                return(SecBuffer.Create(SecurityBufferType.ChannelBindings | SecurityBufferType.ReadOnly, binding.ToArray(), list));
            }
        }