| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel.Security
- {
- using System;
- class SignatureConfirmations
- {
- SignatureConfirmation[] confirmations;
- int length;
- bool encrypted;
- struct SignatureConfirmation
- {
- public byte[] value;
- public SignatureConfirmation(byte[] value)
- {
- this.value = value;
- }
- }
- public SignatureConfirmations()
- {
- confirmations = new SignatureConfirmation[1];
- length = 0;
- }
- public int Count
- {
- get { return length; }
- }
- public void AddConfirmation(byte[] value, bool encrypted)
- {
- if (confirmations.Length == length)
- {
- SignatureConfirmation[] newConfirmations = new SignatureConfirmation[length * 2];
- Array.Copy(confirmations, 0, newConfirmations, 0, length);
- confirmations = newConfirmations;
- }
- confirmations[length] = new SignatureConfirmation(value);
- ++length;
- this.encrypted |= encrypted;
- }
- public void GetConfirmation(int index, out byte[] value, out bool encrypted)
- {
- if (index < 0 || index >= length)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("index", SR.GetString(SR.ValueMustBeInRange, 0, length)));
- }
- value = confirmations[index].value;
- encrypted = this.encrypted;
- }
- public bool IsMarkedForEncryption
- {
- get { return this.encrypted; }
- }
- }
- }
|