2 // SubjectKeyIdentifierExtension.cs: Handles X.509 SubjectKeyIdentifier extensions.
5 // Sebastien Pouliot <sebastien@ximian.com>
7 // (C) 2004 Novell (http://www.novell.com)
14 using Mono.Security.X509;
16 namespace Mono.Security.X509.Extensions {
19 * id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
21 * SubjectKeyIdentifier ::= KeyIdentifier
23 * KeyIdentifier ::= OCTET STRING
26 public class SubjectKeyIdentifierExtension : X509Extension {
30 public SubjectKeyIdentifierExtension () : base ()
32 extnOid = "2.5.29.14";
35 public SubjectKeyIdentifierExtension (ASN1 asn1) : base (asn1) {}
37 public SubjectKeyIdentifierExtension (X509Extension extension) : base (extension) {}
39 protected override void Decode ()
41 ASN1 sequence = new ASN1 (extnValue.Value);
42 if (sequence.Tag != 0x04)
43 throw new ArgumentException ("Invalid SubjectKeyIdentifier extension");
47 public override string Name {
48 get { return "Subject Key Identifier"; }
51 public byte[] Identifier {
52 get { return (byte[]) ski.Clone (); }
55 public override string ToString ()
60 StringBuilder sb = new StringBuilder ();
62 while (x < ski.Length) {
63 sb.Append (ski [x].ToString ("X2"));
68 return sb.ToString ();