Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -70,7 +70,10 @@ namespace System.Security.Cryptography.X509Certificates {
_oid = new Oid (oid, friendlyName);
base.Critical = critical;
_enhKeyUsage = enhancedKeyUsages.ReadOnlyCopy ();
_enhKeyUsage = new OidCollection();
foreach (Oid o in enhancedKeyUsages) {
_enhKeyUsage.Add(o);
}
RawData = Encode ();
}
@@ -81,10 +84,14 @@ namespace System.Security.Cryptography.X509Certificates {
switch (_status) {
case AsnDecodeStatus.Ok:
case AsnDecodeStatus.InformationNotAvailable:
if (_enhKeyUsage == null)
_enhKeyUsage = new OidCollection ();
_enhKeyUsage.ReadOnly = true;
return _enhKeyUsage;
OidCollection oids = new OidCollection();
if (_enhKeyUsage != null) {
foreach(Oid o in _enhKeyUsage) {
oids.Add(o);
}
}
return oids;
default:
throw new CryptographicException ("Badly encoded extension.");
}
@@ -143,8 +150,8 @@ namespace System.Security.Cryptography.X509Certificates {
internal byte[] Encode ()
{
ASN1 ex = new ASN1 (0x30);
foreach (Oid oid in _enhKeyUsage) {
ex.Add (ASN1Convert.FromOid (oid.Value));
foreach (Oid o in _enhKeyUsage) {
ex.Add (ASN1Convert.FromOid (o.Value));
}
return ex.GetBytes ();
}