@@ -18,7 +18,7 @@ public static class DkimSignatureDataFragmentParser
18
18
/// <returns></returns>
19
19
public static bool TryParse (
20
20
string ? dkimSignature ,
21
- [ NotNullWhen ( true ) ] out DkimSignatureDataFragment ? dkimSignatureDataFragment )
21
+ [ NotNullWhen ( true ) ] out DkimSignatureDataFragmentBase ? dkimSignatureDataFragment )
22
22
{
23
23
return TryParse ( dkimSignature , out dkimSignatureDataFragment , out _ ) ;
24
24
}
@@ -32,7 +32,7 @@ public static bool TryParse(
32
32
/// <returns></returns>
33
33
public static bool TryParse (
34
34
string ? dkimSignature ,
35
- [ NotNullWhen ( true ) ] out DkimSignatureDataFragment ? dkimSignatureDataFragment ,
35
+ [ NotNullWhen ( true ) ] out DkimSignatureDataFragmentBase ? dkimSignatureDataFragment ,
36
36
out ParsingResult [ ] ? parsingResults )
37
37
{
38
38
if ( string . IsNullOrWhiteSpace ( dkimSignature ) )
@@ -43,98 +43,105 @@ public static bool TryParse(
43
43
return false ;
44
44
}
45
45
46
- var handlers = new Dictionary < string , MappingHandler < DkimSignatureDataFragment > >
46
+ var handlers = new Dictionary < string , MappingHandler < DkimSignatureDataFragmentV1 > >
47
47
{
48
48
{
49
- "v" , new MappingHandler < DkimSignatureDataFragment >
49
+ "v" , new MappingHandler < DkimSignatureDataFragmentV1 >
50
50
{
51
51
Map = ( dataFragment , value ) => dataFragment . Version = value ,
52
52
Validate = ValidateVersion
53
53
}
54
54
} ,
55
55
{
56
- "a" , new MappingHandler < DkimSignatureDataFragment >
56
+ "a" , new MappingHandler < DkimSignatureDataFragmentV1 >
57
57
{
58
58
Map = ( dataFragment , value ) => dataFragment . SignatureAlgorithm = value ,
59
59
Validate = ValidateSignatureAlgorithm
60
60
}
61
61
} ,
62
62
{
63
- "b" , new MappingHandler < DkimSignatureDataFragment >
63
+ "b" , new MappingHandler < DkimSignatureDataFragmentV1 >
64
64
{
65
65
Map = ( dataFragment , value ) => dataFragment . SignatureData = value
66
66
}
67
67
} ,
68
68
{
69
- "bh" , new MappingHandler < DkimSignatureDataFragment >
69
+ "bh" , new MappingHandler < DkimSignatureDataFragmentV1 >
70
70
{
71
71
Map = ( dataFragment , value ) => dataFragment . BodyHash = value
72
72
}
73
73
} ,
74
74
{
75
- "c" , new MappingHandler < DkimSignatureDataFragment >
75
+ "c" , new MappingHandler < DkimSignatureDataFragmentV1 >
76
76
{
77
77
Map = ( dataFragment , value ) => dataFragment . MessageCanonicalization = value
78
78
//TODO: Add validate logic
79
79
}
80
80
} ,
81
81
{
82
- "d" , new MappingHandler < DkimSignatureDataFragment >
82
+ "d" , new MappingHandler < DkimSignatureDataFragmentV1 >
83
83
{
84
84
Map = ( dataFragment , value ) => dataFragment . SigningDomainIdentifier = value ,
85
85
Validate = ValidateDomain
86
86
}
87
87
} ,
88
88
{
89
- "l" , new MappingHandler < DkimSignatureDataFragment >
89
+ "l" , new MappingHandler < DkimSignatureDataFragmentV1 >
90
90
{
91
91
Map = ( dataFragment , value ) => dataFragment . BodyLengthCount = value ,
92
92
Validate = ValidateBodyLengthCount
93
93
}
94
94
} ,
95
95
{
96
- "s" , new MappingHandler < DkimSignatureDataFragment >
96
+ "s" , new MappingHandler < DkimSignatureDataFragmentV1 >
97
97
{
98
98
Map = ( dataFragment , value ) => dataFragment . Selector = value ,
99
99
Validate = ValidateSelector
100
100
}
101
101
} ,
102
102
{
103
- "t" , new MappingHandler < DkimSignatureDataFragment >
103
+ "t" , new MappingHandler < DkimSignatureDataFragmentV1 >
104
104
{
105
105
Map = ( dataFragment , value ) => dataFragment . Timestamp = value ,
106
106
Validate = ValidateTimestamp
107
107
}
108
108
} ,
109
109
{
110
- "x" , new MappingHandler < DkimSignatureDataFragment >
110
+ "x" , new MappingHandler < DkimSignatureDataFragmentV1 >
111
111
{
112
112
Map = ( dataFragment , value ) => dataFragment . SignatureExpiration = value
113
113
}
114
114
} ,
115
115
{
116
- "h" , new MappingHandler < DkimSignatureDataFragment >
116
+ "h" , new MappingHandler < DkimSignatureDataFragmentV1 >
117
117
{
118
118
Map = ( dataFragment , value ) => dataFragment . SignedHeaderFields = value ,
119
119
Validate = ValidateSignedHeaderFields
120
120
}
121
121
} ,
122
122
{
123
- "q" , new MappingHandler < DkimSignatureDataFragment >
123
+ "q" , new MappingHandler < DkimSignatureDataFragmentV1 >
124
124
{
125
125
Map = ( dataFragment , value ) => dataFragment . QueryMethods = value
126
126
}
127
127
} ,
128
128
{
129
- "i" , new MappingHandler < DkimSignatureDataFragment >
129
+ "i" , new MappingHandler < DkimSignatureDataFragmentV1 >
130
130
{
131
131
Map = ( dataFragment , value ) => dataFragment . AgentOrUserIdentifier = value
132
132
}
133
133
}
134
134
} ;
135
135
136
- var parserBase = new KeyValueParserBase < DkimSignatureDataFragment > ( handlers ) ;
137
- return parserBase . TryParse ( dkimSignature , out dkimSignatureDataFragment , out parsingResults ) ;
136
+ var parserBase = new KeyValueParserBase < DkimSignatureDataFragmentV1 > ( handlers ) ;
137
+ if ( parserBase . TryParse ( dkimSignature , out var dkimSignatureDataFragmentV1 , out parsingResults ) )
138
+ {
139
+ dkimSignatureDataFragment = dkimSignatureDataFragmentV1 ! ;
140
+ return true ;
141
+ }
142
+
143
+ dkimSignatureDataFragment = null ;
144
+ return false ;
138
145
}
139
146
140
147
private static ParsingResult [ ] ValidatePositiveNumber (
0 commit comments