X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FMono.Security%2FMono.Security.X509.Extensions%2FAuthorityKeyIdentifierExtension.cs;h=fb6f940a1ecbc9f4355bf11602c330229ed75bda;hb=9b2e52a86a4191314a3dc690e046d74cf766927e;hp=accf8a7496aaf02ab5b41da957455bde52a014b2;hpb=833505e392f5c2a6602624657ea3d45629febce1;p=mono.git diff --git a/mcs/class/Mono.Security/Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtension.cs b/mcs/class/Mono.Security/Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtension.cs old mode 100755 new mode 100644 index accf8a7496a..fb6f940a1ec --- a/mcs/class/Mono.Security/Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtension.cs +++ b/mcs/class/Mono.Security/Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtension.cs @@ -4,10 +4,30 @@ // Author: // Sebastien Pouliot // -// (C) 2004 Novell (http://www.novell.com) +// Copyright (C) 2004-2005,2007 Novell, Inc (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; +using System.Globalization; using System.Text; using Mono.Security; @@ -26,7 +46,12 @@ namespace Mono.Security.X509.Extensions { * KeyIdentifier ::= OCTET STRING */ - public class AuthorityKeyIdentifierExtension : X509Extension { +#if INSIDE_SYSTEM + internal +#else + public +#endif + class AuthorityKeyIdentifierExtension : X509Extension { private byte[] aki; @@ -35,9 +60,13 @@ namespace Mono.Security.X509.Extensions { extnOid = "2.5.29.35"; } - public AuthorityKeyIdentifierExtension (ASN1 asn1) : base (asn1) {} + public AuthorityKeyIdentifierExtension (ASN1 asn1) : base (asn1) + { + } - public AuthorityKeyIdentifierExtension (X509Extension extension) : base (extension) {} + public AuthorityKeyIdentifierExtension (X509Extension extension) : base (extension) + { + } protected override void Decode () { @@ -50,10 +79,10 @@ namespace Mono.Security.X509.Extensions { case 0x80: aki = el.Value; break; - case 0x81: - case 0x82: default: - throw new ArgumentException ("Invalid AuthorityKeyIdentifier extension"); + // don't throw on stuff we don't yet support + // e.g. authorityCertIssuer/authorityCertSerialNumber + break; } } } @@ -62,6 +91,14 @@ namespace Mono.Security.X509.Extensions { get { return "Authority Key Identifier"; } } + public byte[] Identifier { + get { + if (aki == null) + return null; + return (byte[]) aki.Clone (); + } + } + public override string ToString () { StringBuilder sb = new StringBuilder (); @@ -70,7 +107,7 @@ namespace Mono.Security.X509.Extensions { int x = 0; sb.Append ("KeyID="); while (x < aki.Length) { - sb.Append (aki [x].ToString ("X2")); + sb.Append (aki [x].ToString ("X2", CultureInfo.InvariantCulture)); if (x % 2 == 1) sb.Append (" "); x++;