Skip to content

Commit 0dd29c7

Browse files
authored
Format Tests (#320)
* Enable C#11 * Use utf8 literals * Use raw strings * Enable ImplicitUsings * Add Async suffixes to async methods * Set IDE0057 to nowarn * Set IDE0037 to nowarn * Set CA1822 to nowarn * Use RandomNumberGenerator.GetBytes() * Set IDE0007 to nowarn * Set IDE0039 to nowarn * Use var * Simply using statements * Simplify Concat usage * Use file-scoped namespaces * Set CA1825 to nowarn * Cleanup * Update Test.Sdk * [Ctap2.Tests] Enable C# 11 and implict usings * [Ctap2.Tests] Format tests
1 parent 9b5dc48 commit 0dd29c7

30 files changed

+10507
-11108
lines changed

Src/Fido2/Fido2NetLib.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,9 @@ public CredentialCreateOptions RequestNewCredential(
4848
AttestationConveyancePreference attestationPreference,
4949
AuthenticationExtensionsClientInputs? extensions = null)
5050
{
51-
var challenge = new byte[_config.ChallengeSize];
52-
RandomNumberGenerator.Fill(challenge);
51+
byte[] challenge = RandomNumberGenerator.GetBytes(_config.ChallengeSize);
5352

54-
var options = CredentialCreateOptions.Create(_config, challenge, user, authenticatorSelection, attestationPreference, excludeCredentials, extensions);
55-
return options;
53+
return CredentialCreateOptions.Create(_config, challenge, user, authenticatorSelection, attestationPreference, excludeCredentials, extensions);
5654
}
5755

5856
/// <summary>
@@ -91,11 +89,9 @@ public AssertionOptions GetAssertionOptions(
9189
UserVerificationRequirement? userVerification,
9290
AuthenticationExtensionsClientInputs? extensions = null)
9391
{
94-
var challenge = new byte[_config.ChallengeSize];
95-
RandomNumberGenerator.Fill(challenge);
92+
byte[] challenge = RandomNumberGenerator.GetBytes(_config.ChallengeSize);
9693

97-
var options = AssertionOptions.Create(_config, challenge, allowedCredentials, userVerification, extensions);
98-
return options;
94+
return AssertionOptions.Create(_config, challenge, allowedCredentials, userVerification, extensions);
9995
}
10096

10197
/// <summary>

Test/Asn1Tests.cs

Lines changed: 101 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,158 +1,153 @@
1-
using System;
2-
using System.Formats.Asn1;
3-
using System.Linq;
1+
using System.Formats.Asn1;
42
using System.Security.Cryptography;
53
using System.Text;
64

75
using Fido2NetLib;
86

9-
using Xunit;
7+
namespace Test;
108

11-
namespace Test
9+
public class Asn1Tests
1210
{
13-
public class Asn1Tests
11+
[Fact]
12+
public void EncodeTpmSan()
1413
{
15-
[Fact]
16-
public void EncodeTpmSan()
17-
{
18-
Assert.Equal("MG2kazBpMRYwFAYFZ4EFAgEMC2lkOkZGRkZGMUQwMTcwNQYFZ4EFAgIMLEZJRE8yLU5FVC1MSUItVGVzdFRQTUFpa0NlcnRTQU5UQ0dDb25mb3JtYW50MRYwFAYFZ4EFAgMMC2lkOkYxRDAwMDAy", Convert.ToBase64String(TpmSanEncoder.Encode(
19-
( new Oid("2.23.133.2.1"), "id:FFFFF1D0" ),
20-
( new Oid("2.23.133.2.2"), "FIDO2-NET-LIB-TestTPMAikCertSANTCGConformant" ),
21-
( new Oid("2.23.133.2.3"), "id:F1D00002")
22-
)));
23-
}
14+
Assert.Equal("MG2kazBpMRYwFAYFZ4EFAgEMC2lkOkZGRkZGMUQwMTcwNQYFZ4EFAgIMLEZJRE8yLU5FVC1MSUItVGVzdFRQTUFpa0NlcnRTQU5UQ0dDb25mb3JtYW50MRYwFAYFZ4EFAgMMC2lkOkYxRDAwMDAy", Convert.ToBase64String(TpmSanEncoder.Encode(
15+
( new Oid("2.23.133.2.1"), "id:FFFFF1D0" ),
16+
( new Oid("2.23.133.2.2"), "FIDO2-NET-LIB-TestTPMAikCertSANTCGConformant" ),
17+
( new Oid("2.23.133.2.3"), "id:F1D00002")
18+
)));
19+
}
2420

25-
[Fact]
26-
public void DecodeObjectIdentifierAsOctetString()
27-
{
28-
byte[] data = Convert.FromBase64String("MD8wPaA7oDmGN2h0dHBzOi8vbWRzMy5jZXJ0aW5mcmEuZmlkb2FsbGlhbmNlLm9yZy9jcmwvTURTQ0EtMS5jcmw=");
21+
[Fact]
22+
public void DecodeObjectIdentifierAsOctetString()
23+
{
24+
byte[] data = Convert.FromBase64String("MD8wPaA7oDmGN2h0dHBzOi8vbWRzMy5jZXJ0aW5mcmEuZmlkb2FsbGlhbmNlLm9yZy9jcmwvTURTQ0EtMS5jcmw=");
2925

30-
var decoded = Asn1Element.Decode(data);
26+
var decoded = Asn1Element.Decode(data);
3127

32-
Assert.Equal(new Asn1Tag(TagClass.ContextSpecific, (int) UniversalTagNumber.ObjectIdentifier), decoded[0][0][0][0].Tag);
28+
Assert.Equal(new Asn1Tag(TagClass.ContextSpecific, (int) UniversalTagNumber.ObjectIdentifier), decoded[0][0][0][0].Tag);
3329

34-
var cdp = Encoding.ASCII.GetString(decoded[0][0][0][0].GetOctetString(decoded[0][0][0][0].Tag));
30+
var cdp = Encoding.ASCII.GetString(decoded[0][0][0][0].GetOctetString(decoded[0][0][0][0].Tag));
3531

36-
Assert.Equal("https://mds3.certinfra.fidoalliance.org/crl/MDSCA-1.crl", cdp);
37-
}
32+
Assert.Equal("https://mds3.certinfra.fidoalliance.org/crl/MDSCA-1.crl", cdp);
33+
}
3834

39-
[Fact]
40-
public void DecodeEcDsaSig()
41-
{
42-
byte[] ecDsaSig = Convert.FromBase64String("MEUCIDelsTyfT/3Z6UO1KBz1j/GBoQmDN/2MXxsfGZNon1dsAiEAqsl2tTaUhnNoFTokqm4B/RegC9y5z/bSsAwtBXsQwdg=");
35+
[Fact]
36+
public void DecodeEcDsaSig()
37+
{
38+
byte[] ecDsaSig = Convert.FromBase64String("MEUCIDelsTyfT/3Z6UO1KBz1j/GBoQmDN/2MXxsfGZNon1dsAiEAqsl2tTaUhnNoFTokqm4B/RegC9y5z/bSsAwtBXsQwdg=");
4339

44-
var decoded = Asn1Element.Decode(ecDsaSig);
40+
var decoded = Asn1Element.Decode(ecDsaSig);
4541

46-
Assert.Equal(Asn1Tag.Integer, decoded[0].Tag);
47-
Assert.Equal(Asn1Tag.Integer, decoded[1].Tag);
42+
Assert.Equal(Asn1Tag.Integer, decoded[0].Tag);
43+
Assert.Equal(Asn1Tag.Integer, decoded[1].Tag);
4844

49-
var r = decoded[0].GetIntegerBytes();
50-
var s = decoded[1].GetIntegerBytes();
45+
var r = decoded[0].GetIntegerBytes();
46+
var s = decoded[1].GetIntegerBytes();
5147

52-
Assert.Equal("N6WxPJ9P/dnpQ7UoHPWP8YGhCYM3/YxfGx8Zk2ifV2w=", Convert.ToBase64String(r));
53-
Assert.Equal("AKrJdrU2lIZzaBU6JKpuAf0XoAvcuc/20rAMLQV7EMHY", Convert.ToBase64String(s));
48+
Assert.Equal("N6WxPJ9P/dnpQ7UoHPWP8YGhCYM3/YxfGx8Zk2ifV2w=", Convert.ToBase64String(r));
49+
Assert.Equal("AKrJdrU2lIZzaBU6JKpuAf0XoAvcuc/20rAMLQV7EMHY", Convert.ToBase64String(s));
5450

5551

56-
}
57-
[Fact]
58-
public void DecodeBitString()
59-
{
60-
byte[] data = Convert.FromBase64String("AwIFIA==");
52+
}
53+
[Fact]
54+
public void DecodeBitString()
55+
{
56+
byte[] data = Convert.FromBase64String("AwIFIA==");
6157

62-
var element = Asn1Element.Decode(data);
58+
var element = Asn1Element.Decode(data);
6359

64-
Assert.Equal(Asn1Tag.PrimitiveBitString, element.Tag);
60+
Assert.Equal(Asn1Tag.PrimitiveBitString, element.Tag);
6561

66-
Assert.Equal("IA==", Convert.ToBase64String(element.GetBitString()));
67-
}
62+
Assert.Equal("IA==", Convert.ToBase64String(element.GetBitString()));
63+
}
6864

69-
[Fact]
70-
public void DecodeConstructedObject()
71-
{
72-
byte[] data = Convert.FromBase64String("MCShIgQgnGACFUCz4Zg03+N+xiRFyJ4bKU95LORrlBPDIw7zhoE=");
65+
[Fact]
66+
public void DecodeConstructedObject()
67+
{
68+
byte[] data = Convert.FromBase64String("MCShIgQgnGACFUCz4Zg03+N+xiRFyJ4bKU95LORrlBPDIw7zhoE=");
7369

74-
var element = Asn1Element.Decode(data);
70+
var element = Asn1Element.Decode(data);
7571

76-
Assert.True(element.IsConstructed);
72+
Assert.True(element.IsConstructed);
7773

78-
element[0][0].CheckTag(Asn1Tag.PrimitiveOctetString);
74+
element[0][0].CheckTag(Asn1Tag.PrimitiveOctetString);
7975

80-
Assert.Equal("nGACFUCz4Zg03+N+xiRFyJ4bKU95LORrlBPDIw7zhoE=", Convert.ToBase64String(element[0][0].GetOctetString()));
81-
}
76+
Assert.Equal("nGACFUCz4Zg03+N+xiRFyJ4bKU95LORrlBPDIw7zhoE=", Convert.ToBase64String(element[0][0].GetOctetString()));
77+
}
8278

83-
[Fact]
84-
public void DecodeOctetString()
85-
{
86-
byte[] data = Convert.FromBase64String("MIHPAgECCgEAAgEBCgEABCDc0UoXtU1CwwItW3ne2faKDcFCabFI31BufXEFVK/ENwQAMGm/hT0IAgYBXtPjz6C/hUVZBFcwVTEvMC0EKGNvbS5hbmRyb2lkLmtleXN0b3JlLmFuZHJvaWRrZXlzdG9yZWRlbW8CAQExIgQgdM/LUHSI9SkQhZHHpQWRnzJ3MvvB2ANSauqYAAbS2JgwMqEFMQMCAQKiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+DeAMCAQK/hT4DAgEAv4U/AgUA");
79+
[Fact]
80+
public void DecodeOctetString()
81+
{
82+
byte[] data = Convert.FromBase64String("MIHPAgECCgEAAgEBCgEABCDc0UoXtU1CwwItW3ne2faKDcFCabFI31BufXEFVK/ENwQAMGm/hT0IAgYBXtPjz6C/hUVZBFcwVTEvMC0EKGNvbS5hbmRyb2lkLmtleXN0b3JlLmFuZHJvaWRrZXlzdG9yZWRlbW8CAQExIgQgdM/LUHSI9SkQhZHHpQWRnzJ3MvvB2ANSauqYAAbS2JgwMqEFMQMCAQKiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+DeAMCAQK/hT4DAgEAv4U/AgUA");
8783

88-
var element = Asn1Element.Decode(data);
84+
var element = Asn1Element.Decode(data);
8985

90-
Assert.True(element[4].IsOctetString);
91-
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[4].Tag);
86+
Assert.True(element[4].IsOctetString);
87+
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[4].Tag);
9288

9389

94-
Assert.Equal("3NFKF7VNQsMCLVt53tn2ig3BQmmxSN9Qbn1xBVSvxDc=", Convert.ToBase64String(element[4].GetOctetString()));
95-
}
90+
Assert.Equal("3NFKF7VNQsMCLVt53tn2ig3BQmmxSN9Qbn1xBVSvxDc=", Convert.ToBase64String(element[4].GetOctetString()));
91+
}
9692

97-
[Fact]
98-
public void Decode()
99-
{
100-
byte[] data = Convert.FromBase64String("MIHPAgECCgEAAgEBCgEABCDc0UoXtU1CwwItW3ne2faKDcFCabFI31BufXEFVK/ENwQAMGm/hT0IAgYBXtPjz6C/hUVZBFcwVTEvMC0EKGNvbS5hbmRyb2lkLmtleXN0b3JlLmFuZHJvaWRrZXlzdG9yZWRlbW8CAQExIgQgdM/LUHSI9SkQhZHHpQWRnzJ3MvvB2ANSauqYAAbS2JgwMqEFMQMCAQKiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+DeAMCAQK/hT4DAgEAv4U/AgUA");
93+
[Fact]
94+
public void Decode()
95+
{
96+
byte[] data = Convert.FromBase64String("MIHPAgECCgEAAgEBCgEABCDc0UoXtU1CwwItW3ne2faKDcFCabFI31BufXEFVK/ENwQAMGm/hT0IAgYBXtPjz6C/hUVZBFcwVTEvMC0EKGNvbS5hbmRyb2lkLmtleXN0b3JlLmFuZHJvaWRrZXlzdG9yZWRlbW8CAQExIgQgdM/LUHSI9SkQhZHHpQWRnzJ3MvvB2ANSauqYAAbS2JgwMqEFMQMCAQKiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+DeAMCAQK/hT4DAgEAv4U/AgUA");
10197

102-
var element = Asn1Element.Decode(data);
98+
var element = Asn1Element.Decode(data);
10399

104-
Assert.Equal(Asn1Tag.Sequence, element.Tag);
105-
Assert.Equal(8, element.Sequence.Count);
106-
Assert.Equal(new[] { 2, 10, 2, 10, 4, 4, 16, 16 }, element.Sequence.Select(element => element.TagValue).ToArray());
100+
Assert.Equal(Asn1Tag.Sequence, element.Tag);
101+
Assert.Equal(8, element.Sequence.Count);
102+
Assert.Equal(new[] { 2, 10, 2, 10, 4, 4, 16, 16 }, element.Sequence.Select(element => element.TagValue).ToArray());
107103

108-
Assert.Equal(Asn1Tag.Integer, element[0].Tag);
109-
Assert.Equal(Asn1Tag.Enumerated, element[1].Tag);
110-
Assert.Equal(Asn1Tag.Integer, element[2].Tag);
111-
Assert.Equal(Asn1Tag.Enumerated, element[3].Tag);
112-
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[4].Tag);
113-
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[5].Tag);
114-
Assert.Equal(Asn1Tag.Sequence, element[6].Tag);
115-
Assert.Equal(Asn1Tag.Sequence, element[7].Tag);
104+
Assert.Equal(Asn1Tag.Integer, element[0].Tag);
105+
Assert.Equal(Asn1Tag.Enumerated, element[1].Tag);
106+
Assert.Equal(Asn1Tag.Integer, element[2].Tag);
107+
Assert.Equal(Asn1Tag.Enumerated, element[3].Tag);
108+
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[4].Tag);
109+
Assert.Equal(Asn1Tag.PrimitiveOctetString, element[5].Tag);
110+
Assert.Equal(Asn1Tag.Sequence, element[6].Tag);
111+
Assert.Equal(Asn1Tag.Sequence, element[7].Tag);
116112

117-
Assert.True(element[0].IsInteger);
118-
Assert.Equal(2, element[0].GetInt32());
113+
Assert.True(element[0].IsInteger);
114+
Assert.Equal(2, element[0].GetInt32());
119115

120-
Assert.True(element[4].IsOctetString);
116+
Assert.True(element[4].IsOctetString);
121117

122-
Assert.True(element[6].IsSequence);
118+
Assert.True(element[6].IsSequence);
123119

124-
Assert.Equal(new[] { 701, 709 }, element[6].Sequence.Select(element => element.TagValue).ToArray());
125-
}
120+
Assert.Equal(new[] { 701, 709 }, element[6].Sequence.Select(element => element.TagValue).ToArray());
121+
}
126122

127-
[Fact]
128-
public void DecodeContextSpecificConstructedSet()
129-
{
130-
byte[] data = Convert.FromBase64String("MGACAQMgAwQBAAIBAiADBAEABCABfDdfwPehWBVL2KIcBZflxAraVzzPoB2bIb9ZUqt97gQQ7PlbfpnmqCgDZgrEb1eHiTARv4U9BgIEYWcoF6EFMQMCAQEwB7+FPgMCAQA=");
123+
[Fact]
124+
public void DecodeContextSpecificConstructedSet()
125+
{
126+
byte[] data = Convert.FromBase64String("MGACAQMgAwQBAAIBAiADBAEABCABfDdfwPehWBVL2KIcBZflxAraVzzPoB2bIb9ZUqt97gQQ7PlbfpnmqCgDZgrEb1eHiTARv4U9BgIEYWcoF6EFMQMCAQEwB7+FPgMCAQA=");
131127

132-
var element = Asn1Element.Decode(data);
128+
var element = Asn1Element.Decode(data);
133129

134-
Assert.Equal(Asn1Tag.Sequence, element.Tag);
135-
Assert.Equal(8, element.Sequence.Count);
136-
Assert.Equal(new[] { 2, 0, 2, 0, 4, 4, 16, 16 }, element.Sequence.Select(element => element.TagValue).ToArray());
130+
Assert.Equal(Asn1Tag.Sequence, element.Tag);
131+
Assert.Equal(8, element.Sequence.Count);
132+
Assert.Equal(new[] { 2, 0, 2, 0, 4, 4, 16, 16 }, element.Sequence.Select(element => element.TagValue).ToArray());
137133

138-
var element6 = element[6];
139-
var element6_1 = element[6][1];
140-
var element6_1_0 = element[6][1][0];
141-
var element6_1_0_0 = element[6][1][0][0];
134+
var element6 = element[6];
135+
var element6_1 = element[6][1];
136+
var element6_1_0 = element[6][1][0];
137+
var element6_1_0_0 = element[6][1][0][0];
142138

143-
Assert.True(element6.IsSequence);
144-
Assert.Equal(701, element6[0].TagValue);
139+
Assert.True(element6.IsSequence);
140+
Assert.Equal(701, element6[0].TagValue);
145141

146142

147-
Assert.True(element6_1.IsConstructed);
148-
Assert.Equal(TagClass.ContextSpecific, element6_1.TagClass);
149-
Assert.Equal(1, element6_1.TagValue);
150-
Assert.Equal(1, element6_1.Sequence.Count);
143+
Assert.True(element6_1.IsConstructed);
144+
Assert.Equal(TagClass.ContextSpecific, element6_1.TagClass);
145+
Assert.Equal(1, element6_1.TagValue);
146+
Assert.Equal(1, element6_1.Sequence.Count);
151147

152-
Assert.Equal(Asn1Tag.SetOf, element6_1_0.Tag);
148+
Assert.Equal(Asn1Tag.SetOf, element6_1_0.Tag);
153149

154-
Assert.Equal(2, element6_1_0_0.TagValue);
155-
Assert.Equal(1, element6_1_0_0.GetInt32());
156-
}
150+
Assert.Equal(2, element6_1_0_0.TagValue);
151+
Assert.Equal(1, element6_1_0_0.GetInt32());
157152
}
158153
}

0 commit comments

Comments
 (0)