terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
X509Crl.cs
Go to the documentation of this file.
1using System;
5
6namespace Mono.Security.X509
7{
8 // Token: 0x02000013 RID: 19
9 public class X509Crl
10 {
11 // Token: 0x060000A6 RID: 166 RVA: 0x00004D20 File Offset: 0x00002F20
12 public X509Crl(byte[] crl)
13 {
14 do
15 {
16 base..ctor();
17 }
18 while (crl == null);
19 object obj;
20 if (obj != null)
21 {
22 if (obj != null)
23 {
25 if (obj != null)
26 {
27 return;
28 }
29 }
30 throw new InvalidCastException();
31 }
32 }
33
34 // Token: 0x060000A7 RID: 167 RVA: 0x00004D4C File Offset: 0x00002F4C
35 private void Parse(byte[] crl)
36 {
37 byte[] array = this.encoded;
38 ASN1 asn;
39 byte nTag = asn.m_nTag;
40 if (asn.elist != null)
41 {
42 long num = 0L;
43 byte nTag2 = asn[(int)num].m_nTag;
44 long num2 = 0L;
45 byte[] value = asn[(int)num2].Value;
46 return;
47 }
48 string text = "Input data cannot be coded as a valid CRL." + " [Non-matching signature algorithms in CRL]";
49 }
50
51 // Token: 0x17000024 RID: 36
52 // (get) Token: 0x060000A8 RID: 168 RVA: 0x00004EF4 File Offset: 0x000030F4
54 {
55 get
56 {
57 return ArrayList.ReadOnly(this.entries);
58 }
59 }
60
61 // Token: 0x17000025 RID: 37
62 public X509Crl.X509CrlEntry this[int index]
63 {
64 get
65 {
66 if (this.entries != null)
67 {
68 }
69 throw new InvalidCastException();
70 }
71 }
72
73 // Token: 0x17000026 RID: 38
75 {
76 get
77 {
78 return this.GetCrlEntry(serialNumber);
79 }
80 }
81
82 // Token: 0x17000027 RID: 39
83 // (get) Token: 0x060000AB RID: 171 RVA: 0x00004F3C File Offset: 0x0000313C
85 {
86 get
87 {
88 return this.extensions;
89 }
90 }
91
92 // Token: 0x17000028 RID: 40
93 // (get) Token: 0x060000AC RID: 172 RVA: 0x00004F50 File Offset: 0x00003150
94 public byte[] Hash
95 {
96 get
97 {
98 while (this.hash_value != null)
99 {
100 }
101 byte[] array = this.encoded;
102 HashAlgorithm hashAlgorithm = PKCS1.CreateFromOid(this.signatureOID);
103 long num = 0L;
104 byte[] array2;
106 if (hashAlgorithm != null)
107 {
108 }
109 if (num == 0L)
110 {
111 return this.hash_value;
112 }
113 throw new OutOfMemoryException();
114 }
115 }
116
117 // Token: 0x17000029 RID: 41
118 // (get) Token: 0x060000AD RID: 173 RVA: 0x00004FB4 File Offset: 0x000031B4
119 public string IssuerName
120 {
121 get
122 {
123 return this.issuer;
124 }
125 }
126
127 // Token: 0x1700002A RID: 42
128 // (get) Token: 0x060000AE RID: 174 RVA: 0x00004FC8 File Offset: 0x000031C8
130 {
131 get
132 {
133 DateTime dateTime = this.nextUpdate;
135 return dateTime2;
136 }
137 }
138
139 // Token: 0x1700002B RID: 43
140 // (get) Token: 0x060000AF RID: 175 RVA: 0x00004FE0 File Offset: 0x000031E0
142 {
143 get
144 {
145 DateTime dateTime = this.thisUpdate;
147 return dateTime2;
148 }
149 }
150
151 // Token: 0x1700002C RID: 44
152 // (get) Token: 0x060000B0 RID: 176 RVA: 0x00004FF8 File Offset: 0x000031F8
153 public string SignatureAlgorithm
154 {
155 get
156 {
157 return this.signatureOID;
158 }
159 }
160
161 // Token: 0x1700002D RID: 45
162 // (get) Token: 0x060000B1 RID: 177 RVA: 0x0000500C File Offset: 0x0000320C
163 public byte[] Signature
164 {
165 get
166 {
167 object obj;
168 if (this.signature == null || obj == null || obj != null)
169 {
170 }
171 throw new InvalidCastException();
172 }
173 }
174
175 // Token: 0x1700002E RID: 46
176 // (get) Token: 0x060000B2 RID: 178 RVA: 0x0000502C File Offset: 0x0000322C
177 public byte[] RawData
178 {
179 get
180 {
181 byte[] array = this.encoded;
182 object obj;
183 if (obj == null || obj != null)
184 {
185 }
186 throw new InvalidCastException();
187 }
188 }
189
190 // Token: 0x1700002F RID: 47
191 // (get) Token: 0x060000B3 RID: 179 RVA: 0x0000504C File Offset: 0x0000324C
192 public byte Version
193 {
194 get
195 {
196 return this.version;
197 }
198 }
199
200 // Token: 0x17000030 RID: 48
201 // (get) Token: 0x060000B4 RID: 180 RVA: 0x00005060 File Offset: 0x00003260
202 public bool IsCurrent
203 {
204 get
205 {
206 if (!true)
207 {
208 }
210 return this.WasCurrent(now);
211 }
212 }
213
214 // Token: 0x060000B5 RID: 181 RVA: 0x00005080 File Offset: 0x00003280
216 {
217 DateTime dateTime = this.nextUpdate;
218 if (!true)
219 {
220 }
221 bool flag = dateTime == instant;
223 return instant >= dateTime2;
224 }
225
226 // Token: 0x060000B6 RID: 182 RVA: 0x000050BC File Offset: 0x000032BC
227 public byte[] GetBytes()
228 {
229 byte[] array = this.encoded;
230 object obj;
231 if (obj == null || obj != null)
232 {
233 }
234 throw new InvalidCastException();
235 }
236
237 // Token: 0x060000B7 RID: 183 RVA: 0x000050DC File Offset: 0x000032DC
238 private bool Compare(byte[] array1, byte[] array2)
239 {
240 while (array1 == null || array2 == null)
241 {
242 }
243 }
244
245 // Token: 0x060000B8 RID: 184 RVA: 0x000050F4 File Offset: 0x000032F4
247 {
248 while (x509 == null)
249 {
250 }
252 return x509CrlEntry;
253 }
254
255 // Token: 0x060000B9 RID: 185 RVA: 0x00005108 File Offset: 0x00003308
257 {
258 while (serialNumber == null)
259 {
260 }
262 if (this.entries != null)
263 {
264 }
266 throw new InvalidCastException();
267 }
268
269 // Token: 0x060000BA RID: 186 RVA: 0x0000513C File Offset: 0x0000333C
271 {
272 while (x509 == null)
273 {
274 }
275 int num = x509.version;
276 if (x509.extensions["2.5.29.19"] != null)
277 {
278 }
279 long num2 = 0L;
280 if (x509.extensions["2.5.29.15"] == null || num2 != 0L)
281 {
282 string text = this.issuer;
283 }
284 bool flag = this.signatureOID == "1.2.840.10040.4.3";
285 DSA dsa = x509.DSA;
286 return this.VerifySignature(dsa);
287 }
288
289 // Token: 0x060000BB RID: 187 RVA: 0x000051AC File Offset: 0x000033AC
290 internal bool VerifySignature(DSA dsa)
291 {
292 /*
293An exception occurred when decompiling this method (060000BB)
294
295ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Mono.Security.X509.X509Crl::VerifySignature(System.Security.Cryptography.DSA)
296
297 ---> System.Exception: Basic block has to end with unconditional control flow.
298{
299 Block_0:
300 stloc:bool(var_0_10, call:bool(string::op_Inequality, ldfld:string(X509Crl::signatureOID, ldloc:X509Crl(this)), ldstr:string("1.2.840.10040.4.3")))
301 stloc:uint8[](var_1_17, ldfld:uint8[](X509Crl::signature, ldloc:X509Crl(this)))
302 stloc:uint8[](var_4_20, callgetter:uint8[](ASN1::get_Value, ldloc:ASN1(var_3)))
303 stloc:uint8[](var_7_2C, callgetter:uint8[](ASN1::get_Value, ldloc:ASN1(var_6)))
304 stloc:int32(var_8_30, ldc.i4:int32(40))
305 stloc:int32(var_9_3A, call:int32(Math::Max, ldc.i4:int32(0), ldloc:int32(var_8_30)))
306 stloc:int32(var_10_44, call:int32(Math::Max, ldc.i4:int32(0), ldloc:int32(var_8_30)))
307 stloc:int32(var_11_4E, call:int32(Math::Max, ldc.i4:int32(0), ldloc:int32(var_9_3A)))
308 stloc:int32(var_12_59, call:int32(Math::Max, ldc.i4:int32(20), ldloc:int32(var_9_3A)))
309 stloc:uint8[](var_13_61, callgetter:uint8[](X509Crl::get_Hash, ldloc:X509Crl(this)))
310 stloc:string(var_15_6C, ldfld:string(X509Crl::signatureOID, ldloc:X509Crl(this)))
311 stloc:string(var_16_7A, call:string(string::Concat, ldstr:string("Unsupported hash algorithm: "), ldloc:string(var_15_6C)))
312}
313
314 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
315 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
316 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
317 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
318 --- End of inner exception stack trace ---
319 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
320 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
321*/;
322 }
323
324 // Token: 0x060000BC RID: 188 RVA: 0x00005234 File Offset: 0x00003434
325 internal bool VerifySignature(RSA rsa)
326 {
327 /*
328An exception occurred when decompiling this method (060000BC)
329
330ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Mono.Security.X509.X509Crl::VerifySignature(System.Security.Cryptography.RSA)
331
332 ---> System.Exception: Basic block has to end with unconditional control flow.
333{
334 IL_000A:
335 stloc:string(var_1_11, call:string(PKCS1::HashNameFromOid, ldloc:string(var_0_06), ldc.i4:bool(1)))
336 stloc:uint8[](var_2_18, callgetter:uint8[](X509Crl::get_Hash, ldloc:X509Crl(this)))
337 stloc:uint8[](var_3_1F, ldfld:uint8[](X509Crl::signature, ldloc:X509Crl(this)))
338}
339
340 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
341 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
342 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
343 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
344 --- End of inner exception stack trace ---
345 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
346 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
347*/;
348 }
349
350 // Token: 0x060000BD RID: 189 RVA: 0x00005260 File Offset: 0x00003460
352 {
353 while (aa == null)
354 {
355 }
356 bool flag;
357 return flag;
358 }
359
360 // Token: 0x060000BE RID: 190 RVA: 0x00005274 File Offset: 0x00003474
361 public static X509Crl CreateFromFile(string filename)
362 {
363 if (!false)
364 {
365 }
366 throw new OutOfMemoryException();
367 }
368
369 // Token: 0x0400005C RID: 92
370 private string issuer;
371
372 // Token: 0x0400005D RID: 93
373 private byte version;
374
375 // Token: 0x0400005E RID: 94
377
378 // Token: 0x0400005F RID: 95
380
381 // Token: 0x04000060 RID: 96
383
384 // Token: 0x04000061 RID: 97
385 private string signatureOID;
386
387 // Token: 0x04000062 RID: 98
388 private byte[] signature;
389
390 // Token: 0x04000063 RID: 99
392
393 // Token: 0x04000064 RID: 100
394 private byte[] encoded;
395
396 // Token: 0x04000065 RID: 101
397 private byte[] hash_value;
398
399 // Token: 0x02000014 RID: 20
400 public class X509CrlEntry
401 {
402 // Token: 0x060000BF RID: 191 RVA: 0x00005298 File Offset: 0x00003498
411
412 // Token: 0x060000C0 RID: 192 RVA: 0x000052BC File Offset: 0x000034BC
413 internal X509CrlEntry(ASN1 entry)
414 {
415 long num = 0L;
416 byte[] value = entry[(int)num].Value;
417 this.sn = value;
418 DateTime dateTime = ASN1Convert.ToDateTime(entry[1]);
419 this.revocationDate = dateTime;
420 ASN1 asn = entry[2];
421 }
422
423 // Token: 0x17000031 RID: 49
424 // (get) Token: 0x060000C1 RID: 193 RVA: 0x00005304 File Offset: 0x00003504
425 public byte[] SerialNumber
426 {
427 get
428 {
429 byte[] array = this.sn;
430 object obj;
431 if (obj == null || obj != null)
432 {
433 }
434 throw new InvalidCastException();
435 }
436 }
437
438 // Token: 0x17000032 RID: 50
439 // (get) Token: 0x060000C2 RID: 194 RVA: 0x00005324 File Offset: 0x00003524
441 {
442 get
443 {
444 DateTime dateTime = this.revocationDate;
446 return dateTime2;
447 }
448 }
449
450 // Token: 0x17000033 RID: 51
451 // (get) Token: 0x060000C3 RID: 195 RVA: 0x0000533C File Offset: 0x0000353C
453 {
454 get
455 {
456 return this.extensions;
457 }
458 }
459
460 // Token: 0x060000C4 RID: 196 RVA: 0x00005350 File Offset: 0x00003550
461 public byte[] GetBytes()
462 {
463 /*
464An exception occurred when decompiling this method (060000C4)
465
466ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] Mono.Security.X509.X509Crl/X509CrlEntry::GetBytes()
467
468 ---> System.Exception: Basic block has to end with unconditional control flow.
469{
470 Block_0:
471 stloc:uint8[](var_0_06, ldfld:uint8[](X509CrlEntry::sn, ldloc:X509CrlEntry(this)))
472 stloc:ASN1(var_2_12, call:ASN1(ASN1Convert::FromDateTime, ldfld:DateTime(X509CrlEntry::revocationDate, ldloc:X509CrlEntry(this))))
473 stloc:int32(var_4_1E, callgetter:int32(CollectionBase::get_Count, ldfld:X509ExtensionCollection[exp:CollectionBase](X509CrlEntry::extensions, ldloc:X509CrlEntry(this))))
474 stloc:uint8[](var_5_2B, call:uint8[](X509ExtensionCollection::GetBytes, ldfld:X509ExtensionCollection(X509CrlEntry::extensions, ldloc:X509CrlEntry(this))))
475}
476
477 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
478 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
479 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
480 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
481 --- End of inner exception stack trace ---
482 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
483 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
484*/;
485 }
486
487 // Token: 0x04000066 RID: 102
488 private byte[] sn;
489
490 // Token: 0x04000067 RID: 103
492
493 // Token: 0x04000068 RID: 104
495 }
496 }
497}
class f__AnonymousType0<< Count > j__TPar
static DateTime ToDateTime(ASN1 time)
static HashAlgorithm CreateFromOid(string oid)
Definition PKCS1.cs:114
X509ExtensionCollection extensions
Definition X509Crl.cs:494
X509CrlEntry(byte[] serialNumber, DateTime revocationDate, X509ExtensionCollection extensions)
Definition X509Crl.cs:403
X509Crl.X509CrlEntry GetCrlEntry(X509Certificate x509)
Definition X509Crl.cs:246
bool WasCurrent(DateTime instant)
Definition X509Crl.cs:215
bool VerifySignature(X509Certificate x509)
Definition X509Crl.cs:270
bool Compare(byte[] array1, byte[] array2)
Definition X509Crl.cs:238
void Parse(byte[] crl)
Definition X509Crl.cs:35
bool VerifySignature(DSA dsa)
Definition X509Crl.cs:290
X509ExtensionCollection extensions
Definition X509Crl.cs:391
X509Crl.X509CrlEntry this[byte[] serialNumber
Definition X509Crl.cs:75
static X509Crl CreateFromFile(string filename)
Definition X509Crl.cs:361
X509Crl.X509CrlEntry GetCrlEntry(byte[] serialNumber)
Definition X509Crl.cs:256
bool VerifySignature(RSA rsa)
Definition X509Crl.cs:325
bool VerifySignature(AsymmetricAlgorithm aa)
Definition X509Crl.cs:351
static ArrayList ReadOnly(ArrayList list)
Definition ArrayList.cs:324
static DateTime Now
Definition DateTime.cs:530