public static void EnsureAttributesRoundtrip() { Pkcs8PrivateKeyInfo pkcs8Info; using (ECDsa ecdsa = ECDsa.Create()) { pkcs8Info = Pkcs8PrivateKeyInfo.Create(ecdsa); } string description = DateTimeOffset.UtcNow.ToString(); pkcs8Info.Attributes.Add(new Pkcs9DocumentDescription(description)); byte[] encoded = pkcs8Info.Encode(); Pkcs8PrivateKeyInfo pkcs8Info2 = Pkcs8PrivateKeyInfo.Decode(encoded, out _, skipCopy: true); Assert.Equal(pkcs8Info.AlgorithmId.Value, pkcs8Info2.AlgorithmId.Value); Assert.Equal( pkcs8Info.AlgorithmParameters.Value.ByteArrayToHex(), pkcs8Info2.AlgorithmParameters.Value.ByteArrayToHex()); Assert.Equal( pkcs8Info.PrivateKeyBytes.ByteArrayToHex(), pkcs8Info2.PrivateKeyBytes.ByteArrayToHex()); Assert.Equal(1, pkcs8Info2.Attributes.Count); Pkcs9DocumentDescription descAttr = Assert.IsType <Pkcs9DocumentDescription>(pkcs8Info2.Attributes[0].Values[0]); Assert.Equal(description, descAttr.DocumentDescription); }
private static void AssertIsDocumentationDescription(this AsnEncodedData attribute, string expectedDocumentDescription) { Assert.Equal(Oids.DocumentDescription, attribute.Oid.Value); Pkcs9DocumentDescription enhancedAttribute = attribute as Pkcs9DocumentDescription; Assert.NotNull(enhancedAttribute); Assert.Equal(expectedDocumentDescription, enhancedAttribute.DocumentDescription); }
public static void DocumentDescriptionNullary() { Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(); Assert.Null(p.RawData); Assert.Null(p.DocumentDescription); string oid = p.Oid.Value; Assert.Equal(s_OidDocumentDescription, oid); }
public void Constructor_Empty() { Pkcs9DocumentDescription dd = new Pkcs9DocumentDescription(); Assert.AreEqual("1.3.6.1.4.1.311.88.2.2", dd.Oid.Value, "Oid.Value"); Assert.IsNull(dd.Oid.FriendlyName, "Oid.FriendlyName"); Assert.IsNull(dd.RawData, "RawData"); Assert.IsNull(dd.DocumentDescription, "DocumentDescription"); Assert.AreEqual(String.Empty, dd.Format(true), "Format(true)"); Assert.AreEqual(String.Empty, dd.Format(false), "Format(false)"); }
public static void DocumentDescriptionFromCookedData() { Pkcs9DocumentDescription p = new Pkcs9DocumentDescription("My Description"); string oid = p.Oid.Value; Assert.Equal(s_OidDocumentDescription, oid); Pkcs9DocumentDescription p2 = new Pkcs9DocumentDescription(p.RawData); string cookedData = p2.DocumentDescription; Assert.Equal("My Description", cookedData); }
public void Constructor_String() { Pkcs9DocumentDescription dd = new Pkcs9DocumentDescription("mono"); Assert.AreEqual("1.3.6.1.4.1.311.88.2.2", dd.Oid.Value, "Oid.Value"); Assert.IsNull(dd.Oid.FriendlyName, "Oid.FriendlyName"); Assert.AreEqual("mono", dd.DocumentDescription, "DocumentDescription"); Assert.AreEqual(12, dd.RawData.Length, "RawData.Length"); Assert.AreEqual("04-0A-6D-00-6F-00-6E-00-6F-00-00-00", BitConverter.ToString(dd.RawData), "RawData"); Assert.AreEqual("04 0a 6d 00 6f 00 6e 00 6f 00 00 00", dd.Format(true), "Format(true)"); Assert.AreEqual("04 0a 6d 00 6f 00 6e 00 6f 00 00 00", dd.Format(false), "Format(false)"); }
public static void DocumentDescriptionEmbeddedTerminator() { byte[] rawData = "041e4d00790020004400650073006300720000007000740069006f006e000000".HexToByteArray(); Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(rawData); Assert.Equal(rawData, p.RawData); string cookedData = p.DocumentDescription; Assert.Equal("My Descr", cookedData); string oid = p.Oid.Value; Assert.Equal(s_OidDocumentDescription, oid); }
public static void DocumentDescriptionNullary() { Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(); if (PlatformDetection.IsNetCore) { Assert.Empty(p.RawData); Assert.Throws <CryptographicException>(() => p.DocumentDescription); } else { Assert.Null(p.RawData); Assert.Null(p.DocumentDescription); } string oid = p.Oid.Value; Assert.Equal(s_OidDocumentDescription, oid); }
public static void AddFold() { AsnEncodedData dd1 = new Pkcs9DocumentDescription("My Description 1"); AsnEncodedData dd2 = new Pkcs9DocumentDescription("My Description 2"); CryptographicAttributeObjectCollection c = new CryptographicAttributeObjectCollection(); int index; index = c.Add(dd1); Assert.Equal(0, index); index = c.Add(dd2); Assert.Equal(0, index); AsnEncodedDataCollection expectedValues = new AsnEncodedDataCollection(); expectedValues.Add(dd1); expectedValues.Add(dd2); CryptographicAttributeObject expected = new CryptographicAttributeObject(dd1.Oid, expectedValues); AssertEquals(c, new CryptographicAttributeObject[] { expected }); }
public static void DocumentDescriptionNullValue() { object ignore; Assert.Throws <ArgumentNullException>(() => ignore = new Pkcs9DocumentDescription((string)null)); }
public void Constructor_ArrayNull() { byte[] desc = null; Pkcs9DocumentDescription dd = new Pkcs9DocumentDescription(desc); }
public void Constructor_StringNull() { string desc = null; Pkcs9DocumentDescription dd = new Pkcs9DocumentDescription(desc); }