Merge pull request #1679 from knguyen0928/master
authorJoão Matos <joao@tritao.eu>
Fri, 3 Apr 2015 10:20:51 +0000 (11:20 +0100)
committerJoão Matos <joao@tritao.eu>
Fri, 3 Apr 2015 10:20:51 +0000 (11:20 +0100)
Support more oids: aes128, aes256, sha256, sha512

mcs/class/System/System.Security.Cryptography/Oid.cs
mcs/class/System/Test/System.Security.Cryptography/OidTest.cs

index ef87eba31581a14fd62557e54b42cff3ff163901..7a1e7851bba9f3a9562d94540b9868699b40fa83 100644 (file)
@@ -107,6 +107,14 @@ namespace System.Security.Cryptography {
                internal const string nameSha1 = "sha1";
                internal const string oidSubjectAltName = "2.5.29.17";
                internal const string nameSubjectAltName = "Subject Alternative Name";
+               internal const string oidAes128 = "2.16.840.1.101.3.4.1.2";
+               internal const string nameAes128 = "aes128";
+               internal const string oidAes256 = "2.16.840.1.101.3.4.1.42";
+               internal const string nameAes256 = "aes256";
+               internal const string oidSha256 = "2.16.840.1.101.3.4.2.1";
+               internal const string nameSha256 = "sha256";
+               internal const string oidSha512 = "2.16.840.1.101.3.4.2.3";
+               internal const string nameSha512 = "sha512";
                internal const string oidNetscapeCertType = "2.16.840.1.113730.1.1";
                internal const string nameNetscapeCertType = "Netscape Cert Type";
 
@@ -140,8 +148,16 @@ namespace System.Security.Cryptography {
                                        return nameNetscapeCertType;
                                case oidMd5:
                                        return nameMd5;
+                               case oidAes128:
+                                       return nameAes128;
+                               case oidAes256:
+                                       return nameAes256;
                                case oidSha1:
                                        return nameSha1;
+                               case oidSha256:
+                                       return nameSha256;
+                               case oidSha512:
+                                       return nameSha512;
                                default:
                                        return _name;
                        }
@@ -177,8 +193,16 @@ namespace System.Security.Cryptography {
                                        return oidNetscapeCertType;
                                case nameMd5:
                                        return oidMd5;
+                               case nameAes128:
+                                       return oidAes128;
+                               case nameAes256:
+                                       return oidAes256;
                                case nameSha1:
                                        return oidSha1;
+                               case nameSha256:
+                                       return oidSha256;
+                               case nameSha512:
+                                       return oidSha512;
                                default:
                                        return _value;
                        }
index 40480ba9ee509ec4ca7cfd6853bd06a4a7989285..4aa40ff84e75af8e636bd9bfb6d4a4f106e85d8b 100644 (file)
@@ -163,6 +163,9 @@ namespace MonoTests.System.Security.Cryptography {
                        Oid o = new Oid ("1.2.840.113549.1.1.1");
                        Assert.AreEqual ("1.2.840.113549.1.1.1", o.Value, "RSA Value");
                        Assert.AreEqual ("RSA", o.FriendlyName, "RSA FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "RSA";
+                       Assert.AreEqual (o.Value, "1.2.840.113549.1.1.1", "RSA Value from FriendlyName");
 
                        o = new Oid ("1.2.840.113549.1.7.1");
                        Assert.AreEqual ("1.2.840.113549.1.7.1", o.Value, "PKCS 7 Data Value");
@@ -177,6 +180,37 @@ namespace MonoTests.System.Security.Cryptography {
                        o = new Oid ("1.2.840.113549.3.7");
                        Assert.AreEqual ("1.2.840.113549.3.7", o.Value, "3des Value");
                        Assert.AreEqual ("3des", o.FriendlyName, "3des FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "3des";
+                       Assert.AreEqual (o.Value, "1.2.840.113549.3.7", "3des Value from FriendlyName");
+
+                       o = new Oid ("2.16.840.1.101.3.4.1.2");
+                       Assert.AreEqual ("2.16.840.1.101.3.4.1.2", o.Value, "aes128 Value");
+                       Assert.AreEqual ("aes128", o.FriendlyName, "aes128 FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "aes128";
+                       Assert.AreEqual (o.Value, "2.16.840.1.101.3.4.1.2", "aes123 Value from FriendlyName");
+
+                       o = new Oid ("2.16.840.1.101.3.4.1.42");
+                       Assert.AreEqual ("2.16.840.1.101.3.4.1.42", o.Value, "aes256 Value");
+                       Assert.AreEqual ("aes256", o.FriendlyName, "aes256 FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "aes256";
+                       Assert.AreEqual (o.Value, "2.16.840.1.101.3.4.1.42", "aes256 Value from FriendlyName");
+
+                       o = new Oid ("2.16.840.1.101.3.4.2.1");
+                       Assert.AreEqual ("2.16.840.1.101.3.4.2.1", o.Value, "sha256 Value");
+                       Assert.AreEqual ("sha256", o.FriendlyName, "sha256 FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "sha256";
+                       Assert.AreEqual (o.Value, "2.16.840.1.101.3.4.2.1", "sha256 Value from FriendlyName");
+
+                       o = new Oid ("2.16.840.1.101.3.4.2.3");
+                       Assert.AreEqual ("2.16.840.1.101.3.4.2.3", o.Value, "sha512 Value");
+                       Assert.AreEqual ("sha512", o.FriendlyName, "sha512 FriendlyName");
+                       o = new Oid ();
+                       o.FriendlyName = "sha512";
+                       Assert.AreEqual (o.Value, "2.16.840.1.101.3.4.2.3", "sha512 Value from FriendlyName");
 
                        // TODO: add other well known oid as we find them
                }