Skip to content

Commit ad30e1a

Browse files
committed
Do dart format
1 parent 0c0aefd commit ad30e1a

File tree

7 files changed

+327
-173
lines changed

7 files changed

+327
-173
lines changed

example/example.dart

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ void main() {
1515
"</library>";
1616

1717
//sign an xml document
18-
signXml(xml,
19-
"//*[local-name()='book']",
20-
'client.pem',
21-
'result.xml');
18+
signXml(xml, "//*[local-name()='book']", 'client.pem', 'result.xml');
2219

2320
print('xml signed successfully');
2421

@@ -42,12 +39,11 @@ void signXml(String xml, String xpath, String key, String dest) {
4239
}
4340

4441
bool validateXml(String xml, String key) {
45-
final signature = XPath.xml(xml)
46-
.query("/*/*[local-name()='Signature']").node;
42+
final signature = XPath.xml(xml).query("/*/*[local-name()='Signature']").node;
4743
final sig = SignedXml()
4844
..keyInfoProvider = FileKeyInfo(key)
4945
..loadSignature(signature!.node);
5046
final res = sig.checkSignature(xml);
5147
if (!res) print(sig.validationErrors);
5248
return res;
53-
}
49+
}

lib/src/c14n_canonicalization.dart

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import 'package:xml/xml.dart';
77
import 'signed_xml.dart';
88
import 'utils.dart';
99

10-
const xmlData = [XmlNodeType.CDATA, XmlNodeType.DOCUMENT_TYPE, XmlNodeType.PROCESSING, XmlNodeType.TEXT];
10+
const xmlData = [
11+
XmlNodeType.CDATA,
12+
XmlNodeType.DOCUMENT_TYPE,
13+
XmlNodeType.PROCESSING,
14+
XmlNodeType.TEXT
15+
];
1116

1217
class XmlNamespace {
1318
final String prefix;
@@ -19,7 +24,8 @@ class XmlNamespace {
1924
String toString() => '$prefix:$namespaceURI';
2025

2126
@override
22-
bool operator ==(Object other) => identical(this, other) ||
27+
bool operator ==(Object other) =>
28+
identical(this, other) ||
2329
other is XmlNamespace &&
2430
runtimeType == other.runtimeType &&
2531
prefix == other.prefix &&
@@ -51,8 +57,7 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
5157
}
5258

5359
int nsCompare(XmlNamespace a, XmlNamespace b) {
54-
final attr1 = a.prefix,
55-
attr2 = b.prefix;
60+
final attr1 = a.prefix, attr2 = b.prefix;
5661
if (attr1 == attr2) return 0;
5762
return attr1.compareTo(attr2);
5863
}
@@ -73,12 +78,17 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
7378
attrListToRender.sort(attrCompare);
7479

7580
return attrListToRender
76-
.map((attr) => ' ${attr.name.qualified}="${encodeSpecialCharactersInAttribute(attr.value)}"')
81+
.map((attr) =>
82+
' ${attr.name.qualified}="${encodeSpecialCharactersInAttribute(attr.value)}"')
7783
.join('');
7884
}
7985

80-
RenderNsResult _renderNs(XmlElement node, List<String> prefixesInScope, String defaultNs,
81-
Map<String, String> defaultNsForPrefix, List<XmlNamespace> ancestorNamespaces) {
86+
RenderNsResult _renderNs(
87+
XmlElement node,
88+
List<String> prefixesInScope,
89+
String defaultNs,
90+
Map<String, String> defaultNsForPrefix,
91+
List<XmlNamespace> ancestorNamespaces) {
8292
final res = <String>[];
8393
var newDefaultNs = defaultNs;
8494
final currNs = node.name.namespaceUri ?? '';
@@ -88,7 +98,8 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
8898
final prefix = node.name.prefix;
8999
if (prefix != null) {
90100
if (!prefixesInScope.contains(prefix)) {
91-
nsListToRender.add(XmlNamespace(prefix, node.name.namespaceUri ?? defaultNsForPrefix[prefix]));
101+
nsListToRender.add(XmlNamespace(
102+
prefix, node.name.namespaceUri ?? defaultNsForPrefix[prefix]));
92103
prefixesInScope.add(prefix);
93104
}
94105
} else if (defaultNs != currNs) {
@@ -110,7 +121,10 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
110121

111122
//handle all prefixed attributes that are not xmlns definitions and where
112123
//the prefix is not defined already
113-
if (prefix != null && !prefixesInScope.contains(prefix) && prefix != 'xmlns' && prefix != 'xml') {
124+
if (prefix != null &&
125+
!prefixesInScope.contains(prefix) &&
126+
prefix != 'xmlns' &&
127+
prefix != 'xml') {
114128
nsListToRender.add(XmlNamespace(prefix, attr.name.namespaceUri));
115129
prefixesInScope.add(prefix);
116130
}
@@ -140,8 +154,12 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
140154
return RenderNsResult(res.join(''), newDefaultNs);
141155
}
142156

143-
String _processInner(XmlNode node, List<String> prefixesInScope, String defaultNs,
144-
Map<String, String> defaultNsForPrefix, List<XmlNamespace> ancestorNamespaces) {
157+
String _processInner(
158+
XmlNode node,
159+
List<String> prefixesInScope,
160+
String defaultNs,
161+
Map<String, String> defaultNsForPrefix,
162+
List<XmlNamespace> ancestorNamespaces) {
145163
if (node.nodeType == XmlNodeType.COMMENT) {
146164
return renderComment(node);
147165
}
@@ -152,12 +170,20 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
152170

153171
if (node is XmlElement) {
154172
final tagName = node.name.qualified,
155-
ns = _renderNs(node, prefixesInScope, defaultNs, defaultNsForPrefix, ancestorNamespaces),
156-
res = ['<', tagName, ns.rendered, renderAttrs(node, ns.newDefaultNs), '>'];
173+
ns = _renderNs(node, prefixesInScope, defaultNs, defaultNsForPrefix,
174+
ancestorNamespaces),
175+
res = [
176+
'<',
177+
tagName,
178+
ns.rendered,
179+
renderAttrs(node, ns.newDefaultNs),
180+
'>'
181+
];
157182

158183
for (final child in node.children) {
159184
final pfxCopy = prefixesInScope.toList();
160-
res.add(_processInner(child, pfxCopy, ns.newDefaultNs, defaultNsForPrefix, <XmlNamespace>[]));
185+
res.add(_processInner(child, pfxCopy, ns.newDefaultNs,
186+
defaultNsForPrefix, <XmlNamespace>[]));
161187
}
162188

163189
res.add('</$tagName>');
@@ -175,8 +201,7 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
175201
isAfterDocument = false;
176202

177203
if (isOutsideDocument) {
178-
XmlNode? nextNode = node,
179-
previousNode = node;
204+
XmlNode? nextNode = node, previousNode = node;
180205

181206
while (nextNode != null) {
182207
if (nextNode == node.document?.rootElement) {
@@ -197,16 +222,23 @@ class C14nCanonicalization implements CanonicalizationAlgorithm<String> {
197222
}
198223
}
199224

200-
return (isAfterDocument ? '\n' : '') + '<!--' + encodeSpecialCharactersInText(node.text) + '-->' + (isBeforeDocument ? '\n' : '');
225+
return (isAfterDocument ? '\n' : '') +
226+
'<!--' +
227+
encodeSpecialCharactersInText(node.text) +
228+
'-->' +
229+
(isBeforeDocument ? '\n' : '');
201230
}
202231

203232
@override
204233
String process(XmlNode node, [Map<String, dynamic> options = const {}]) {
205234
final defaultNs = options['defaultNs'] as String? ?? '';
206-
final defaultNsForPrefix = options['defaultNsForPrefix'] as Map<String, String>? ?? {};
207-
final ancestorNamespaces = options['ancestorNamespaces'] as List<XmlNamespace>? ?? [];
235+
final defaultNsForPrefix =
236+
options['defaultNsForPrefix'] as Map<String, String>? ?? {};
237+
final ancestorNamespaces =
238+
options['ancestorNamespaces'] as List<XmlNamespace>? ?? [];
208239

209-
return _processInner(node, [], defaultNs, defaultNsForPrefix, ancestorNamespaces);
240+
return _processInner(
241+
node, [], defaultNs, defaultNsForPrefix, ancestorNamespaces);
210242
}
211243

212244
@override
@@ -218,5 +250,6 @@ class C14nCanonicalizationWithComments extends C14nCanonicalization {
218250
bool get includeComments => true;
219251

220252
@override
221-
String get algorithmName => 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments';
222-
}
253+
String get algorithmName =>
254+
'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments';
255+
}

lib/src/enveloped_signature.dart

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@ import 'utils.dart';
1010

1111
class EnvelopedSignature implements CanonicalizationAlgorithm<XmlNode> {
1212
@override
13-
String get algorithmName => 'http://www.w3.org/2000/09/xmldsig#enveloped-signature';
13+
String get algorithmName =>
14+
'http://www.w3.org/2000/09/xmldsig#enveloped-signature';
1415

1516
@override
1617
XmlNode process(XmlNode node, [Map<String, dynamic> options = const {}]) {
1718
final signatureNode = options['signatureNode'];
1819
if (signatureNode == null) {
1920
// leave this for the moment...
20-
final signature = XPath(XmlNodeTree(node))
21-
.query('./*[local-name()="Signature""]'); // FIXME: namespace-uri() not supported
22-
// .query('./*[local-name()="Signature" and namespace-uri()="http://www.w3.org/2000/09/xmldsig#"]');
21+
final signature = XPath(XmlNodeTree(node)).query(
22+
'./*[local-name()="Signature""]'); // FIXME: namespace-uri() not supported
23+
// .query('./*[local-name()="Signature" and namespace-uri()="http://www.w3.org/2000/09/xmldsig#"]');
2324
final signatureNode = signature.node;
2425
if (signatureNode != null) {
2526
final child = signatureNode.node;
@@ -29,19 +30,23 @@ class EnvelopedSignature implements CanonicalizationAlgorithm<XmlNode> {
2930
}
3031

3132
assert(signatureNode is XmlElement);
32-
final expectedSignatureValue = findFirst(signatureNode as XmlElement, ".//*[local-name()='SignatureValue']/text()").text;
33-
final signatures = XPath(XmlNodeTree(node))
34-
.query('.//*[local-name()="Signature"]'); // FIXME: namespace-uri() not supported
35-
// .query('.//*[local-name()="Signature" and namespace-uri()="http://www.w3.org/2000/09/xmldsig#"]');
33+
final expectedSignatureValue = findFirst(signatureNode as XmlElement,
34+
".//*[local-name()='SignatureValue']/text()")
35+
.text;
36+
final signatures = XPath(XmlNodeTree(node)).query(
37+
'.//*[local-name()="Signature"]'); // FIXME: namespace-uri() not supported
38+
// .query('.//*[local-name()="Signature" and namespace-uri()="http://www.w3.org/2000/09/xmldsig#"]');
3639
for (final sig in signatures.nodes) {
3740
final child = sig.node;
3841
assert(child is XmlElement);
39-
final signatureValue = findFirst(child as XmlElement, ".//*[local-name()='SignatureValue']/text()").text;
42+
final signatureValue = findFirst(
43+
child as XmlElement, ".//*[local-name()='SignatureValue']/text()")
44+
.text;
4045
if (expectedSignatureValue == signatureValue) {
4146
child.parent?.children.remove(child);
4247
}
4348
}
4449

4550
return node;
4651
}
47-
}
52+
}

0 commit comments

Comments
 (0)