Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Create() [2/4]

X509Certificate2 System.Security.Cryptography.X509Certificates.CertificateRequest.Create ( X500DistinguishedName issuerName,
X509SignatureGenerator generator,
DateTimeOffset notBefore,
DateTimeOffset notAfter,
ReadOnlySpan< byte > serialNumber )
inline

Definition at line 286 of file CertificateRequest.cs.

287 {
288 if (issuerName == null)
289 {
290 throw new ArgumentNullException("issuerName");
291 }
292 if (generator == null)
293 {
294 throw new ArgumentNullException("generator");
295 }
296 if (notAfter < notBefore)
297 {
299 }
300 if (serialNumber == null || serialNumber.Length < 1)
301 {
302 throw new ArgumentException(System.SR.Arg_EmptyOrNullArray, "serialNumber");
303 }
304 byte[] signatureAlgorithmIdentifier = generator.GetSignatureAlgorithmIdentifier(HashAlgorithm);
306 if (signatureAlgorithm.Parameters.HasValue)
307 {
309 }
312 tbsCertificateAsn.Version = 2;
313 tbsCertificateAsn.SerialNumber = arraySegment;
314 tbsCertificateAsn.SignatureAlgorithm = signatureAlgorithm;
315 tbsCertificateAsn.Issuer = issuerName.RawData;
316 tbsCertificateAsn.SubjectPublicKeyInfo = new System.Security.Cryptography.Asn1.SubjectPublicKeyInfoAsn
317 {
319 {
320 Algorithm = PublicKey.Oid.Value,
321 Parameters = PublicKey.EncodedParameters.RawData
322 },
323 SubjectPublicKey = PublicKey.EncodedKeyValue.RawData
324 };
325 tbsCertificateAsn.Validity = new ValidityAsn(notBefore, notAfter);
326 tbsCertificateAsn.Subject = SubjectName.RawData;
329 {
332 foreach (X509Extension certificateExtension in CertificateExtensions)
333 {
334 if (certificateExtension != null)
335 {
336 if (!hashSet.Add(certificateExtension.Oid.Value))
337 {
339 }
341 }
342 }
343 if (list.Count > 0)
344 {
345 tbsCertificate.Extensions = list.ToArray();
346 }
347 }
350 byte[] data = asnWriter.Encode();
351 asnWriter.Reset();
353 certificateAsn.TbsCertificate = tbsCertificate;
354 certificateAsn.SignatureAlgorithm = signatureAlgorithm;
355 certificateAsn.SignatureValue = generator.SignData(data, HashAlgorithm);
358 X509Certificate2 result = new X509Certificate2(asnWriter.Encode());
360 return result;
361 }
static void ValidateDer(ReadOnlyMemory< byte > encodedValue)
Definition Helpers.cs:151
void Add(TKey key, TValue value)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Cryptography_CertReq_DuplicateExtension
Definition SR.cs:48
static string Cryptography_CertReq_DatesReversed
Definition SR.cs:46
static string Arg_EmptyOrNullArray
Definition SR.cs:14
Definition SR.cs:7
static void Return(byte[] array, int clearSize=-1)
Definition CryptoPool.cs:12
ArraySegment< byte > NormalizeSerialNumber(ReadOnlySpan< byte > serialNumber)
static void Decode(ref AsnValueReader reader, ReadOnlyMemory< byte > rebind, out AlgorithmIdentifierAsn decoded)

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.SR.Arg_EmptyOrNullArray, System.Security.Cryptography.X509Certificates.CertificateRequest.CertificateExtensions, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.SR.Cryptography_CertReq_DatesReversed, System.SR.Cryptography_CertReq_DuplicateExtension, System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Decode(), System.SR.Format(), System.list, System.Security.Cryptography.X509Certificates.CertificateRequest.NormalizeSerialNumber(), System.Security.Cryptography.X509Certificates.PublicKey.Oid, System.Security.Cryptography.AsnEncodedData.RawData, System.Security.Cryptography.CryptoPool.Return(), System.Security.Cryptography.X509Certificates.CertificateRequest.SubjectName, Internal.Cryptography.Helpers.ValidateDer(), and System.Security.Cryptography.Oid.Value.