internal static void Decode(AsnReader reader, out TimeAsn decoded) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } decoded = default; Asn1Tag tag = reader.PeekTag(); if (tag.HasSameClassAndValue(Asn1Tag.UtcTime)) { decoded.UtcTime = reader.GetUtcTime(); } else if (tag.HasSameClassAndValue(Asn1Tag.GeneralizedTime)) { decoded.GeneralTime = reader.GetGeneralizedTime(); } else { throw new CryptographicException(); } }
private static void DecodeCore(ref AsnValueReader reader, ReadOnlyMemory <byte> rebind, out TimeAsn decoded) { decoded = default; Asn1Tag tag = reader.PeekTag(); if (tag.HasSameClassAndValue(Asn1Tag.UtcTime)) { decoded.UtcTime = reader.ReadUtcTime(); } else if (tag.HasSameClassAndValue(Asn1Tag.GeneralizedTime)) { decoded.GeneralTime = reader.ReadGeneralizedTime(); if (decoded.GeneralTime !.Value.Ticks % TimeSpan.TicksPerSecond != 0) { throw new CryptographicException(SR.Cryptography_Der_Invalid_Encoding); } } else { throw new CryptographicException(); } }
internal static void Decode(ref AsnValueReader reader, ReadOnlyMemory <byte> rebind, out TimeAsn decoded) { decoded = default; Asn1Tag tag = reader.PeekTag(); if (tag.HasSameClassAndValue(Asn1Tag.UtcTime)) { decoded.UtcTime = reader.ReadUtcTime(); } else if (tag.HasSameClassAndValue(Asn1Tag.GeneralizedTime)) { decoded.GeneralTime = reader.ReadGeneralizedTime(disallowFractions: true); } else { throw new CryptographicException(); } }
internal static void Decode(ref AsnValueReader reader, ReadOnlyMemory <byte> rebind, out TimeAsn decoded) { try { DecodeCore(ref reader, rebind, out decoded); } catch (AsnContentException e) { throw new CryptographicException(SR.Cryptography_Der_Invalid_Encoding, e); } }
public ValidityAsn(DateTimeOffset notBefore, DateTimeOffset notAfter) { NotBefore = new TimeAsn(notBefore); NotAfter = new TimeAsn(notAfter); }