public static EncodeSupportedSignatureAlgorithms ( IList supportedSignatureAlgorithms, bool allowAnonymous, Stream output ) : void | ||
supportedSignatureAlgorithms | IList | |
allowAnonymous | bool | |
output | Stream | |
Résultat | void |
public virtual void Encode(Stream output) { if (this.mCertificateTypes == null || this.mCertificateTypes.Length == 0) { TlsUtilities.WriteUint8(0, output); } else { TlsUtilities.WriteUint8ArrayWithUint8Length(this.mCertificateTypes, output); } if (this.mSupportedSignatureAlgorithms != null) { TlsUtilities.EncodeSupportedSignatureAlgorithms(this.mSupportedSignatureAlgorithms, false, output); } if (this.mCertificateAuthorities == null || this.mCertificateAuthorities.Count < 1) { TlsUtilities.WriteUint16(0, output); return; } IList list = Platform.CreateArrayList(this.mCertificateAuthorities.Count); int num = 0; foreach (Asn1Encodable asn1Encodable in this.mCertificateAuthorities) { byte[] encoded = asn1Encodable.GetEncoded("DER"); list.Add(encoded); num += encoded.Length + 2; } TlsUtilities.CheckUint16(num); TlsUtilities.WriteUint16(num, output); foreach (byte[] buf in list) { TlsUtilities.WriteOpaque16(buf, output); } }
/** * Encode this {@link CertificateRequest} to a {@link Stream}. * * @param output the {@link Stream} to encode to. * @throws IOException */ public virtual void Encode(Stream output) { if (mCertificateTypes == null || mCertificateTypes.Length == 0) { TlsUtilities.WriteUint8(0, output); } else { TlsUtilities.WriteUint8ArrayWithUint8Length(mCertificateTypes, output); } if (mSupportedSignatureAlgorithms != null) { // TODO Check whether SignatureAlgorithm.anonymous is allowed here TlsUtilities.EncodeSupportedSignatureAlgorithms(mSupportedSignatureAlgorithms, false, output); } if (mCertificateAuthorities == null || mCertificateAuthorities.Count < 1) { TlsUtilities.WriteUint16(0, output); } else { IList derEncodings = Platform.CreateArrayList(mCertificateAuthorities.Count); int totalLength = 0; foreach (Asn1Encodable certificateAuthority in mCertificateAuthorities) { byte[] derEncoding = certificateAuthority.GetEncoded(Asn1Encodable.Der); derEncodings.Add(derEncoding); totalLength += derEncoding.Length + 2; } TlsUtilities.CheckUint16(totalLength); TlsUtilities.WriteUint16(totalLength, output); foreach (byte[] derEncoding in derEncodings) { TlsUtilities.WriteOpaque16(derEncoding, output); } } }
public virtual void Encode(Stream output) { if (mCertificateTypes == null || mCertificateTypes.Length == 0) { TlsUtilities.WriteUint8(0, output); } else { TlsUtilities.WriteUint8ArrayWithUint8Length(mCertificateTypes, output); } if (mSupportedSignatureAlgorithms != null) { TlsUtilities.EncodeSupportedSignatureAlgorithms(mSupportedSignatureAlgorithms, allowAnonymous: false, output); } if (mCertificateAuthorities == null || mCertificateAuthorities.Count < 1) { TlsUtilities.WriteUint16(0, output); } else { IList list = Platform.CreateArrayList(mCertificateAuthorities.Count); int num = 0; foreach (Asn1Encodable mCertificateAuthority in mCertificateAuthorities) { byte[] encoded = mCertificateAuthority.GetEncoded("DER"); list.Add(encoded); num += encoded.Length + 2; } TlsUtilities.CheckUint16(num); TlsUtilities.WriteUint16(num, output); foreach (byte[] item in list) { TlsUtilities.WriteOpaque16(item, output); } } }
public virtual void Encode(Stream output) { if ((this.mCertificateTypes == null) || (this.mCertificateTypes.Length == 0)) { TlsUtilities.WriteUint8(0, output); } else { TlsUtilities.WriteUint8ArrayWithUint8Length(this.mCertificateTypes, output); } if (this.mSupportedSignatureAlgorithms != null) { TlsUtilities.EncodeSupportedSignatureAlgorithms(this.mSupportedSignatureAlgorithms, false, output); } if ((this.mCertificateAuthorities == null) || (this.mCertificateAuthorities.Count < 1)) { TlsUtilities.WriteUint16(0, output); } else { IList list = Platform.CreateArrayList(this.mCertificateAuthorities.Count); int i = 0; IEnumerator enumerator = this.mCertificateAuthorities.GetEnumerator(); try { while (enumerator.MoveNext()) { byte[] encoded = ((Asn1Encodable)enumerator.Current).GetEncoded("DER"); list.Add(encoded); i += encoded.Length + 2; } } finally { if (enumerator is IDisposable disposable) { IDisposable disposable; disposable.Dispose(); } } TlsUtilities.CheckUint16(i); TlsUtilities.WriteUint16(i, output); IEnumerator enumerator2 = list.GetEnumerator(); try { while (enumerator2.MoveNext()) { byte[] current = (byte[])enumerator2.Current; TlsUtilities.WriteOpaque16(current, output); } } finally { if (enumerator2 is IDisposable disposable2) { IDisposable disposable2; disposable2.Dispose(); } } } }
public virtual void Encode(Stream output) { if (mCertificateTypes == null || mCertificateTypes.Length == 0) { TlsUtilities.WriteUint8(0, output); } else { TlsUtilities.WriteUint8ArrayWithUint8Length(mCertificateTypes, output); } if (mSupportedSignatureAlgorithms != null) { TlsUtilities.EncodeSupportedSignatureAlgorithms(mSupportedSignatureAlgorithms, allowAnonymous: false, output); } if (mCertificateAuthorities == null || ((global::System.Collections.ICollection)mCertificateAuthorities).get_Count() < 1) { TlsUtilities.WriteUint16(0, output); return; } global::System.Collections.IList list = Platform.CreateArrayList(((global::System.Collections.ICollection)mCertificateAuthorities).get_Count()); int num = 0; global::System.Collections.IEnumerator enumerator = ((global::System.Collections.IEnumerable)mCertificateAuthorities).GetEnumerator(); try { while (enumerator.MoveNext()) { Asn1Encodable asn1Encodable = (Asn1Encodable)enumerator.get_Current(); byte[] encoded = asn1Encodable.GetEncoded("DER"); list.Add((object)encoded); num += encoded.Length + 2; } } finally { global::System.IDisposable disposable = enumerator as global::System.IDisposable; if (disposable != null) { disposable.Dispose(); } } TlsUtilities.CheckUint16(num); TlsUtilities.WriteUint16(num, output); enumerator = ((global::System.Collections.IEnumerable)list).GetEnumerator(); try { while (enumerator.MoveNext()) { byte[] buf = (byte[])enumerator.get_Current(); TlsUtilities.WriteOpaque16(buf, output); } } finally { global::System.IDisposable disposable2 = enumerator as global::System.IDisposable; if (disposable2 != null) { disposable2.Dispose(); } } }