xmldsign 0.1.1 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/ext/xmldsign/xmldsign_ext.c +7 -19
- data/lib/xmldsign/digests/gost.rb +5 -2
- data/lib/xmldsign/version.rb +1 -1
- data/spec/assets/null-pointer.xml +182 -0
- data/spec/assets/transformed.xml +167 -0
- data/spec/xmldsign/sign_spec.rb +27 -1
- metadata +8 -5
- data/ext/xmldsign/xmldsign_ext.bundle +0 -0
data/.gitignore
CHANGED
data/ext/xmldsign/xmldsign_ext.c
CHANGED
@@ -4,17 +4,9 @@
|
|
4
4
|
#define O_BINARY 0
|
5
5
|
#endif
|
6
6
|
|
7
|
-
|
7
|
+
int digest(char * data, byte * sum)
|
8
8
|
{
|
9
|
-
|
10
|
-
return 0;
|
11
|
-
|
12
|
-
return strndup(str + begin, len);
|
13
|
-
}
|
14
|
-
|
15
|
-
int digest(char * data, char * sum)
|
16
|
-
{
|
17
|
-
gost_subst_block *b= &GostR3411_94_CryptoProParamSet;
|
9
|
+
gost_subst_block *b= &GostR3411_94_CryptoProParamSet;
|
18
10
|
gost_hash_ctx ctx;
|
19
11
|
|
20
12
|
init_gost_hash_ctx(&ctx, b);
|
@@ -27,7 +19,7 @@ int digest(char * data, char * sum)
|
|
27
19
|
return 0;
|
28
20
|
}
|
29
21
|
|
30
|
-
int hash_data(gost_hash_ctx *ctx, const char *data,
|
22
|
+
int hash_data(gost_hash_ctx *ctx, const char *data, byte *sum)
|
31
23
|
{
|
32
24
|
int i;
|
33
25
|
size_t bytes = strlen(data);
|
@@ -42,16 +34,12 @@ int hash_data(gost_hash_ctx *ctx, const char *data, char *sum)
|
|
42
34
|
return 1;
|
43
35
|
}
|
44
36
|
|
45
|
-
static VALUE rb_gost_digest(VALUE self)
|
37
|
+
static VALUE rb_gost_digest(VALUE self, VALUE data)
|
46
38
|
{
|
47
|
-
|
48
|
-
|
49
|
-
VALUE data;
|
50
|
-
|
51
|
-
data = rb_iv_get(self, "@data");
|
39
|
+
byte sum[32];
|
52
40
|
|
53
41
|
if( digest(StringValuePtr(data), sum) )
|
54
|
-
return
|
42
|
+
return rb_str_new( sum, 32 );
|
55
43
|
else
|
56
44
|
return Qfalse;
|
57
45
|
}
|
@@ -62,5 +50,5 @@ void Init_xmldsign_ext() {
|
|
62
50
|
mDigests = rb_define_module_under(mXmldsign, "Digests");
|
63
51
|
cGost = rb_define_class_under(mDigests, "Gost", rb_cObject);
|
64
52
|
|
65
|
-
rb_define_method(cGost, "binary", rb_gost_digest,
|
53
|
+
rb_define_method(cGost, "binary", rb_gost_digest, 1);
|
66
54
|
}
|
@@ -12,6 +12,9 @@ module Xmldsign
|
|
12
12
|
def hex(data)
|
13
13
|
new(data).hex
|
14
14
|
end
|
15
|
+
def binary(data)
|
16
|
+
new(data).binary
|
17
|
+
end
|
15
18
|
end
|
16
19
|
|
17
20
|
def initialize(data)
|
@@ -19,11 +22,11 @@ module Xmldsign
|
|
19
22
|
end
|
20
23
|
|
21
24
|
def base64
|
22
|
-
Base64.
|
25
|
+
Base64.strict_encode64(binary(data))
|
23
26
|
end
|
24
27
|
|
25
28
|
def hex
|
26
|
-
binary.bytes.inject("") { |hex, b| hex << b.to_s(16) }
|
29
|
+
binary(data).bytes.inject("") { |hex, b| hex << b.to_s(16) }
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
data/lib/xmldsign/version.rb
CHANGED
@@ -0,0 +1,182 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<doc:signedActRecordBirth xmlns:doc="http://ezags.rt.ru/type/document/" xmlns:com="http://ezags.rt.ru/type/common/" xmlns:act="http://ezags.rt.ru/type/actor/" xmlns:ext="http://ezags.rt.ru/type/externaldocuments/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
3
|
+
<doc:actRecord>
|
4
|
+
<com:registrarId>260001</com:registrarId>
|
5
|
+
<com:actRecordUID>000000000000000000005</com:actRecordUID>
|
6
|
+
<com:actRecordNumber>1</com:actRecordNumber>
|
7
|
+
<com:actRecordDate>
|
8
|
+
<com:day>9</com:day>
|
9
|
+
<com:month>11</com:month>
|
10
|
+
<com:year>2012</com:year>
|
11
|
+
</com:actRecordDate>
|
12
|
+
<doc:otherInformationAndOfficialAnnotations>
|
13
|
+
<com:otherInformationAndOfficialAnnotationsItem>Other Information</com:otherInformationAndOfficialAnnotationsItem>
|
14
|
+
</doc:otherInformationAndOfficialAnnotations>
|
15
|
+
<com:certNumber>100010</com:certNumber>
|
16
|
+
<com:certSeries>II-ЩФ</com:certSeries>
|
17
|
+
<doc:content>
|
18
|
+
<com:birthStatus>liveborn</com:birthStatus>
|
19
|
+
<com:isDiedInWeek>false</com:isDiedInWeek>
|
20
|
+
<com:numberOfBirths>1</com:numberOfBirths>
|
21
|
+
</doc:content>
|
22
|
+
<doc:participants>
|
23
|
+
<doc:child>
|
24
|
+
<com:surname>Уваров</com:surname>
|
25
|
+
<com:firstName>Николай</com:firstName>
|
26
|
+
<com:patronymic>Иванович</com:patronymic>
|
27
|
+
<com:gender>male</com:gender>
|
28
|
+
<com:birthDate>
|
29
|
+
<com:preciseDate>2012-04-01</com:preciseDate>
|
30
|
+
</com:birthDate>
|
31
|
+
<com:birthPlace>
|
32
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
33
|
+
<com:countryCode>1</com:countryCode>
|
34
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
35
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
36
|
+
</com:birthPlace>
|
37
|
+
</doc:child>
|
38
|
+
<doc:father>
|
39
|
+
<com:isApplicant>false</com:isApplicant>
|
40
|
+
<com:surname>Уваров</com:surname>
|
41
|
+
<com:firstName>Иван</com:firstName>
|
42
|
+
<com:patronymic>Сергеевич</com:patronymic>
|
43
|
+
<com:gender>male</com:gender>
|
44
|
+
<com:birthDate>
|
45
|
+
<com:preciseDate>1972-05-20</com:preciseDate>
|
46
|
+
</com:birthDate>
|
47
|
+
<com:birthPlace>
|
48
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
49
|
+
<com:countryCode>1</com:countryCode>
|
50
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
51
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
52
|
+
</com:birthPlace>
|
53
|
+
<com:citizenship>1</com:citizenship>
|
54
|
+
<com:nationality>1</com:nationality>
|
55
|
+
<com:residencePlace>
|
56
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
57
|
+
<com:countryCode>1</com:countryCode>
|
58
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп. 22, кв 22</com:rawAddressString>
|
59
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
60
|
+
<com:house>1</com:house>
|
61
|
+
<com:building>1</com:building>
|
62
|
+
<com:appartment>1</com:appartment>
|
63
|
+
</com:residencePlace>
|
64
|
+
<com:snils>111-111-111 11</com:snils>
|
65
|
+
</doc:father>
|
66
|
+
<doc:mother>
|
67
|
+
<com:isApplicant>false</com:isApplicant>
|
68
|
+
<com:surname>Уварова</com:surname>
|
69
|
+
<com:firstName>Марина</com:firstName>
|
70
|
+
<com:patronymic>Дмитриевна</com:patronymic>
|
71
|
+
<com:gender>female</com:gender>
|
72
|
+
<com:birthDate>
|
73
|
+
<com:preciseDate>1980-05-06</com:preciseDate>
|
74
|
+
</com:birthDate>
|
75
|
+
<com:birthPlace>
|
76
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
77
|
+
<com:countryCode>1</com:countryCode>
|
78
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
79
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
80
|
+
</com:birthPlace>
|
81
|
+
<com:citizenship>1</com:citizenship>
|
82
|
+
<com:nationality>1</com:nationality>
|
83
|
+
<com:residencePlace>
|
84
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
85
|
+
<com:countryCode>1</com:countryCode>
|
86
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп. 22, кв 22</com:rawAddressString>
|
87
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
88
|
+
<com:house>1</com:house>
|
89
|
+
<com:building>1</com:building>
|
90
|
+
<com:appartment>1</com:appartment>
|
91
|
+
</com:residencePlace>
|
92
|
+
<com:snils>111-111-111 11</com:snils>
|
93
|
+
</doc:mother>
|
94
|
+
</doc:participants>
|
95
|
+
<doc:documentConfirmingBirth>
|
96
|
+
<ext:medicalCertificateOfBirthByOrganization>
|
97
|
+
<com:documentNumber>111111</com:documentNumber>
|
98
|
+
<com:documentSeries>111</com:documentSeries>
|
99
|
+
<com:documentDate>2012-05-20</com:documentDate>
|
100
|
+
<com:organizationName>OrganizationName</com:organizationName>
|
101
|
+
<com:organizationAddress>
|
102
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
103
|
+
<com:countryCode>1</com:countryCode>
|
104
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шуриковская, д.10</com:rawAddressString>
|
105
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
106
|
+
</com:organizationAddress>
|
107
|
+
<com:okpo>1</com:okpo>
|
108
|
+
<com:duplicate>false</com:duplicate>
|
109
|
+
</ext:medicalCertificateOfBirthByOrganization>
|
110
|
+
</doc:documentConfirmingBirth>
|
111
|
+
<doc:documentConfirmingFiliation>
|
112
|
+
<doc:actRecAndCertMarriageRequisites>
|
113
|
+
<doc:actRecordMarriageReqs>
|
114
|
+
<com:registrarId>260001</com:registrarId>
|
115
|
+
<com:actRecordNumber>1</com:actRecordNumber>
|
116
|
+
<com:actRecordDate>
|
117
|
+
<com:day>12</com:day>
|
118
|
+
<com:month>5</com:month>
|
119
|
+
<com:year>2012</com:year>
|
120
|
+
</com:actRecordDate>
|
121
|
+
</doc:actRecordMarriageReqs>
|
122
|
+
<doc:certificateMarriageReqs>
|
123
|
+
<com:registrarId>260001</com:registrarId>
|
124
|
+
<com:certNumber>111111</com:certNumber>
|
125
|
+
<com:documentDate>1972-05-20</com:documentDate>
|
126
|
+
<com:certSeries>111</com:certSeries>
|
127
|
+
</doc:certificateMarriageReqs>
|
128
|
+
</doc:actRecAndCertMarriageRequisites>
|
129
|
+
</doc:documentConfirmingFiliation>
|
130
|
+
<doc:otherApplicants>
|
131
|
+
<doc:applicantPerson>
|
132
|
+
<com:isApplicant>true</com:isApplicant>
|
133
|
+
<com:surname>Уваров</com:surname>
|
134
|
+
<com:firstName>Иван</com:firstName>
|
135
|
+
<com:patronymic>Сергеевич</com:patronymic>
|
136
|
+
<com:birthDate>
|
137
|
+
<com:preciseDate>1972-05-20</com:preciseDate>
|
138
|
+
</com:birthDate>
|
139
|
+
<com:residencePlace>
|
140
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
141
|
+
<com:countryCode>1</com:countryCode>
|
142
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп. 22, кв 22</com:rawAddressString>
|
143
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
144
|
+
<com:house>1</com:house>
|
145
|
+
<com:building>1</com:building>
|
146
|
+
<com:appartment>1</com:appartment>
|
147
|
+
</com:residencePlace>
|
148
|
+
<com:identityDocument>
|
149
|
+
<com:documentType>904</com:documentType>
|
150
|
+
<com:documentNumber>111111</com:documentNumber>
|
151
|
+
<com:organizationName>OrganizationName</com:organizationName>
|
152
|
+
<com:documentDate>2012-05-20</com:documentDate>
|
153
|
+
</com:identityDocument>
|
154
|
+
</doc:applicantPerson>
|
155
|
+
</doc:otherApplicants>
|
156
|
+
</doc:actRecord>
|
157
|
+
<doc:actRecordSignature>
|
158
|
+
<ds:Signature>
|
159
|
+
<ds:SignedInfo>
|
160
|
+
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
161
|
+
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
|
162
|
+
<ds:Reference URI="">
|
163
|
+
<ds:Transforms>
|
164
|
+
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
|
165
|
+
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
|
166
|
+
<xslt:stylesheet xmlns:xslt="http://www.w3.org/1999/XSL/Transform" version="1.0"><xslt:output method="xml" omit-xml-declaration="yes"/><xslt:strip-space elements="*"/><xslt:template match="@*|node()"><xslt:copy><xslt:apply-templates select="@*|node()"/></xslt:copy></xslt:template></xslt:stylesheet>
|
167
|
+
</ds:Transform>
|
168
|
+
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
169
|
+
</ds:Transforms>
|
170
|
+
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
|
171
|
+
<ds:DigestValue>bG9ydW0gaXBzdW0=</ds:DigestValue>
|
172
|
+
</ds:Reference>
|
173
|
+
</ds:SignedInfo>
|
174
|
+
<ds:SignatureValue>bG9ydW0gaXBzdW0=</ds:SignatureValue>
|
175
|
+
<ds:KeyInfo>
|
176
|
+
<ds:X509Data>
|
177
|
+
<ds:X509Certificate>bG9ydW0gaXBzdW0=</ds:X509Certificate>
|
178
|
+
</ds:X509Data>
|
179
|
+
</ds:KeyInfo>
|
180
|
+
</ds:Signature>
|
181
|
+
</doc:actRecordSignature>
|
182
|
+
</doc:signedActRecordBirth>
|
@@ -0,0 +1,167 @@
|
|
1
|
+
<doc:signedActRecordBirth xmlns:doc="http://ezags.rt.ru/type/document/">
|
2
|
+
<doc:actRecord>
|
3
|
+
<com:registrarId xmlns:com="http://ezags.rt.ru/type/common/">260001</com:registrarId>
|
4
|
+
<com:actRecordUID xmlns:com="http://ezags.rt.ru/type/common/">000000000000000000002</com:actRecordUID>
|
5
|
+
<com:actRecordNumber xmlns:com="http://ezags.rt.ru/type/common/">1</com:actRecordNumber>
|
6
|
+
<com:actRecordDate xmlns:com="http://ezags.rt.ru/type/common/">
|
7
|
+
<com:day>9</com:day>
|
8
|
+
<com:month>11</com:month>
|
9
|
+
<com:year>2012</com:year>
|
10
|
+
</com:actRecordDate>
|
11
|
+
<doc:otherInformationAndOfficialAnnotations>
|
12
|
+
<com:otherInformationAndOfficialAnnotationsItem xmlns:com="http://ezags.rt.ru/type/common/">Other
|
13
|
+
Information
|
14
|
+
</com:otherInformationAndOfficialAnnotationsItem>
|
15
|
+
</doc:otherInformationAndOfficialAnnotations>
|
16
|
+
<com:certNumber xmlns:com="http://ezags.rt.ru/type/common/">100004</com:certNumber>
|
17
|
+
<com:certSeries xmlns:com="http://ezags.rt.ru/type/common/">II-ЩФ</com:certSeries>
|
18
|
+
<doc:content>
|
19
|
+
<com:birthStatus xmlns:com="http://ezags.rt.ru/type/common/">liveborn</com:birthStatus>
|
20
|
+
<com:isDiedInWeek xmlns:com="http://ezags.rt.ru/type/common/">false</com:isDiedInWeek>
|
21
|
+
<com:numberOfBirths xmlns:com="http://ezags.rt.ru/type/common/">1</com:numberOfBirths>
|
22
|
+
</doc:content>
|
23
|
+
<doc:participants>
|
24
|
+
<doc:child>
|
25
|
+
<com:surname xmlns:com="http://ezags.rt.ru/type/common/">Уваров</com:surname>
|
26
|
+
<com:firstName xmlns:com="http://ezags.rt.ru/type/common/">Николай</com:firstName>
|
27
|
+
<com:patronymic xmlns:com="http://ezags.rt.ru/type/common/">Иванович</com:patronymic>
|
28
|
+
<com:gender xmlns:com="http://ezags.rt.ru/type/common/">male</com:gender>
|
29
|
+
<com:birthDate xmlns:com="http://ezags.rt.ru/type/common/">
|
30
|
+
<com:preciseDate>2012-04-01</com:preciseDate>
|
31
|
+
</com:birthDate>
|
32
|
+
<com:birthPlace xmlns:com="http://ezags.rt.ru/type/common/">
|
33
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
34
|
+
<com:countryCode>1</com:countryCode>
|
35
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
36
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
37
|
+
</com:birthPlace>
|
38
|
+
</doc:child>
|
39
|
+
<doc:father>
|
40
|
+
<com:isApplicant xmlns:com="http://ezags.rt.ru/type/common/">false</com:isApplicant>
|
41
|
+
<com:surname xmlns:com="http://ezags.rt.ru/type/common/">Уваров</com:surname>
|
42
|
+
<com:firstName xmlns:com="http://ezags.rt.ru/type/common/">Иван</com:firstName>
|
43
|
+
<com:patronymic xmlns:com="http://ezags.rt.ru/type/common/">Сергеевич</com:patronymic>
|
44
|
+
<com:gender xmlns:com="http://ezags.rt.ru/type/common/">male</com:gender>
|
45
|
+
<com:birthDate xmlns:com="http://ezags.rt.ru/type/common/">
|
46
|
+
<com:preciseDate>1972-05-20</com:preciseDate>
|
47
|
+
</com:birthDate>
|
48
|
+
<com:birthPlace xmlns:com="http://ezags.rt.ru/type/common/">
|
49
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
50
|
+
<com:countryCode>1</com:countryCode>
|
51
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
52
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
53
|
+
</com:birthPlace>
|
54
|
+
<com:citizenship xmlns:com="http://ezags.rt.ru/type/common/">1</com:citizenship>
|
55
|
+
<com:nationality xmlns:com="http://ezags.rt.ru/type/common/">1</com:nationality>
|
56
|
+
<com:residencePlace xmlns:com="http://ezags.rt.ru/type/common/">
|
57
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
58
|
+
<com:countryCode>1</com:countryCode>
|
59
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп.
|
60
|
+
22, кв 22
|
61
|
+
</com:rawAddressString>
|
62
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
63
|
+
<com:house>1</com:house>
|
64
|
+
<com:building>1</com:building>
|
65
|
+
<com:appartment>1</com:appartment>
|
66
|
+
</com:residencePlace>
|
67
|
+
<com:snils xmlns:com="http://ezags.rt.ru/type/common/">111-111-111 11</com:snils>
|
68
|
+
</doc:father>
|
69
|
+
<doc:mother>
|
70
|
+
<com:isApplicant xmlns:com="http://ezags.rt.ru/type/common/">false</com:isApplicant>
|
71
|
+
<com:surname xmlns:com="http://ezags.rt.ru/type/common/">Уварова</com:surname>
|
72
|
+
<com:firstName xmlns:com="http://ezags.rt.ru/type/common/">Марина</com:firstName>
|
73
|
+
<com:patronymic xmlns:com="http://ezags.rt.ru/type/common/">Дмитриевна</com:patronymic>
|
74
|
+
<com:gender xmlns:com="http://ezags.rt.ru/type/common/">female</com:gender>
|
75
|
+
<com:birthDate xmlns:com="http://ezags.rt.ru/type/common/">
|
76
|
+
<com:preciseDate>1980-05-06</com:preciseDate>
|
77
|
+
</com:birthDate>
|
78
|
+
<com:birthPlace xmlns:com="http://ezags.rt.ru/type/common/">
|
79
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
80
|
+
<com:countryCode>1</com:countryCode>
|
81
|
+
<com:rawAddressString>город Ставрополь, Ставрополький край, Россия</com:rawAddressString>
|
82
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
83
|
+
</com:birthPlace>
|
84
|
+
<com:citizenship xmlns:com="http://ezags.rt.ru/type/common/">1</com:citizenship>
|
85
|
+
<com:nationality xmlns:com="http://ezags.rt.ru/type/common/">1</com:nationality>
|
86
|
+
<com:residencePlace xmlns:com="http://ezags.rt.ru/type/common/">
|
87
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
88
|
+
<com:countryCode>1</com:countryCode>
|
89
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп.
|
90
|
+
22, кв 22
|
91
|
+
</com:rawAddressString>
|
92
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
93
|
+
<com:house>1</com:house>
|
94
|
+
<com:building>1</com:building>
|
95
|
+
<com:appartment>1</com:appartment>
|
96
|
+
</com:residencePlace>
|
97
|
+
<com:snils xmlns:com="http://ezags.rt.ru/type/common/">111-111-111 11</com:snils>
|
98
|
+
</doc:mother>
|
99
|
+
</doc:participants>
|
100
|
+
<doc:documentConfirmingBirth>
|
101
|
+
<ext:medicalCertificateOfBirthByOrganization xmlns:ext="http://ezags.rt.ru/type/externaldocuments/">
|
102
|
+
<com:documentNumber xmlns:com="http://ezags.rt.ru/type/common/">111111</com:documentNumber>
|
103
|
+
<com:documentSeries xmlns:com="http://ezags.rt.ru/type/common/">111</com:documentSeries>
|
104
|
+
<com:documentDate xmlns:com="http://ezags.rt.ru/type/common/">2012-05-20</com:documentDate>
|
105
|
+
<com:organizationName xmlns:com="http://ezags.rt.ru/type/common/">OrganizationName
|
106
|
+
</com:organizationName>
|
107
|
+
<com:organizationAddress xmlns:com="http://ezags.rt.ru/type/common/">
|
108
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
109
|
+
<com:countryCode>1</com:countryCode>
|
110
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шуриковская, д.10
|
111
|
+
</com:rawAddressString>
|
112
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
113
|
+
</com:organizationAddress>
|
114
|
+
<com:okpo xmlns:com="http://ezags.rt.ru/type/common/">1</com:okpo>
|
115
|
+
<com:duplicate xmlns:com="http://ezags.rt.ru/type/common/">false</com:duplicate>
|
116
|
+
</ext:medicalCertificateOfBirthByOrganization>
|
117
|
+
</doc:documentConfirmingBirth>
|
118
|
+
<doc:documentConfirmingFiliation>
|
119
|
+
<doc:actRecAndCertMarriageRequisites>
|
120
|
+
<doc:actRecordMarriageReqs>
|
121
|
+
<com:registrarId xmlns:com="http://ezags.rt.ru/type/common/">260001</com:registrarId>
|
122
|
+
<com:actRecordNumber xmlns:com="http://ezags.rt.ru/type/common/">1</com:actRecordNumber>
|
123
|
+
<com:actRecordDate xmlns:com="http://ezags.rt.ru/type/common/">
|
124
|
+
<com:day>12</com:day>
|
125
|
+
<com:month>5</com:month>
|
126
|
+
<com:year>2012</com:year>
|
127
|
+
</com:actRecordDate>
|
128
|
+
</doc:actRecordMarriageReqs>
|
129
|
+
<doc:certificateMarriageReqs>
|
130
|
+
<com:registrarId xmlns:com="http://ezags.rt.ru/type/common/">260001</com:registrarId>
|
131
|
+
<com:certNumber xmlns:com="http://ezags.rt.ru/type/common/">111111</com:certNumber>
|
132
|
+
<com:documentDate xmlns:com="http://ezags.rt.ru/type/common/">1972-05-20</com:documentDate>
|
133
|
+
<com:certSeries xmlns:com="http://ezags.rt.ru/type/common/">111</com:certSeries>
|
134
|
+
</doc:certificateMarriageReqs>
|
135
|
+
</doc:actRecAndCertMarriageRequisites>
|
136
|
+
</doc:documentConfirmingFiliation>
|
137
|
+
<doc:otherApplicants>
|
138
|
+
<doc:applicantPerson>
|
139
|
+
<com:isApplicant xmlns:com="http://ezags.rt.ru/type/common/">true</com:isApplicant>
|
140
|
+
<com:surname xmlns:com="http://ezags.rt.ru/type/common/">Уваров</com:surname>
|
141
|
+
<com:firstName xmlns:com="http://ezags.rt.ru/type/common/">Иван</com:firstName>
|
142
|
+
<com:patronymic xmlns:com="http://ezags.rt.ru/type/common/">Сергеевич</com:patronymic>
|
143
|
+
<com:birthDate xmlns:com="http://ezags.rt.ru/type/common/">
|
144
|
+
<com:preciseDate>1972-05-20</com:preciseDate>
|
145
|
+
</com:birthDate>
|
146
|
+
<com:residencePlace xmlns:com="http://ezags.rt.ru/type/common/">
|
147
|
+
<com:okatoCode>12345678910</com:okatoCode>
|
148
|
+
<com:countryCode>1</com:countryCode>
|
149
|
+
<com:rawAddressString>город Ставрополь, Ставропольский край, Россия, улица Шпаковская, д.22, корп.
|
150
|
+
22, кв 22
|
151
|
+
</com:rawAddressString>
|
152
|
+
<com:kladrCode>1234567891013</com:kladrCode>
|
153
|
+
<com:house>1</com:house>
|
154
|
+
<com:building>1</com:building>
|
155
|
+
<com:appartment>1</com:appartment>
|
156
|
+
</com:residencePlace>
|
157
|
+
<com:identityDocument xmlns:com="http://ezags.rt.ru/type/common/">
|
158
|
+
<com:documentType>904</com:documentType>
|
159
|
+
<com:documentNumber>111111</com:documentNumber>
|
160
|
+
<com:organizationName>OrganizationName</com:organizationName>
|
161
|
+
<com:documentDate>2012-05-20</com:documentDate>
|
162
|
+
</com:identityDocument>
|
163
|
+
</doc:applicantPerson>
|
164
|
+
</doc:otherApplicants>
|
165
|
+
</doc:actRecord>
|
166
|
+
<doc:actRecordSignature></doc:actRecordSignature>
|
167
|
+
</doc:signedActRecordBirth>
|
data/spec/xmldsign/sign_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Xmldsign do
|
4
4
|
LibXML::XML.default_pedantic_parser = true
|
5
|
-
LibXML::XML.indent_tree_output
|
5
|
+
LibXML::XML.indent_tree_output = false
|
6
6
|
subject { Xmldsign::Document.string asset('act-birth-for-sign.xml') }
|
7
7
|
|
8
8
|
it "should execute transformations" do
|
@@ -21,4 +21,30 @@ describe Xmldsign do
|
|
21
21
|
subject.signature.c14n_signed_info.should eql asset('signed-info-for-act-birth.xml').strip
|
22
22
|
end
|
23
23
|
|
24
|
+
it "should sign all xml in assets" do
|
25
|
+
assets = %w(signed-act-birth-with-comment.xml
|
26
|
+
signed-act-birth.xml
|
27
|
+
signed-act-changed-ns-order.xml
|
28
|
+
signed-act-changed-prefixes.xml
|
29
|
+
signed-act-changed-xml-comments.xml
|
30
|
+
signed-act-death-with-empty-tags.xml
|
31
|
+
signed-act-death.xml
|
32
|
+
signed.test.xml
|
33
|
+
null-pointer.xml)
|
34
|
+
|
35
|
+
assets.each do |name|
|
36
|
+
xml = Xmldsign::Document.string asset name
|
37
|
+
xml.signature.sign
|
38
|
+
|
39
|
+
xml = Xmldsign::Document.string asset name
|
40
|
+
xml.signature.calculate_digest
|
41
|
+
|
42
|
+
xml = Xmldsign::Document.string asset name
|
43
|
+
xml.signature.fill_digest!
|
44
|
+
end
|
45
|
+
|
46
|
+
#Xmldsign::Document.string asset 'transformed.xml'
|
47
|
+
xml = Xmldsign::Document.string asset 'null-pointer.xml'
|
48
|
+
xml.signature.calculate_digest.should eql 'lnQAJP6l90PT5WyCn37XOH1iayU4j5MjF2cpCzwWgBc='
|
49
|
+
end
|
24
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xmldsign
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: libxml-ruby
|
@@ -148,7 +148,6 @@ files:
|
|
148
148
|
- ext/xmldsign/gost89.h
|
149
149
|
- ext/xmldsign/gosthash.c
|
150
150
|
- ext/xmldsign/gosthash.h
|
151
|
-
- ext/xmldsign/xmldsign_ext.bundle
|
152
151
|
- ext/xmldsign/xmldsign_ext.c
|
153
152
|
- ext/xmldsign/xmldsign_ext.h
|
154
153
|
- lib/xmldsign.rb
|
@@ -165,6 +164,7 @@ files:
|
|
165
164
|
- spec/assets/act-death-for-sign.xml
|
166
165
|
- spec/assets/act-death-with-empty-tags-for-sign.xml
|
167
166
|
- spec/assets/csr.pem
|
167
|
+
- spec/assets/null-pointer.xml
|
168
168
|
- spec/assets/private.key.pem
|
169
169
|
- spec/assets/private.passw.key.pem
|
170
170
|
- spec/assets/public.key.pem
|
@@ -186,6 +186,7 @@ files:
|
|
186
186
|
- spec/assets/signed-act-wrong-transxslt-alg.xml
|
187
187
|
- spec/assets/signed-info-for-act-birth.xml
|
188
188
|
- spec/assets/signed.test.xml
|
189
|
+
- spec/assets/transformed.xml
|
189
190
|
- spec/assets/unsigned.test.xml
|
190
191
|
- spec/assets/x509.crt
|
191
192
|
- spec/spec_helper.rb
|
@@ -205,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
206
|
version: '0'
|
206
207
|
segments:
|
207
208
|
- 0
|
208
|
-
hash:
|
209
|
+
hash: 1771735899723035723
|
209
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
211
|
none: false
|
211
212
|
requirements:
|
@@ -214,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
215
|
version: '0'
|
215
216
|
segments:
|
216
217
|
- 0
|
217
|
-
hash:
|
218
|
+
hash: 1771735899723035723
|
218
219
|
requirements: []
|
219
220
|
rubyforge_project:
|
220
221
|
rubygems_version: 1.8.24
|
@@ -227,6 +228,7 @@ test_files:
|
|
227
228
|
- spec/assets/act-death-for-sign.xml
|
228
229
|
- spec/assets/act-death-with-empty-tags-for-sign.xml
|
229
230
|
- spec/assets/csr.pem
|
231
|
+
- spec/assets/null-pointer.xml
|
230
232
|
- spec/assets/private.key.pem
|
231
233
|
- spec/assets/private.passw.key.pem
|
232
234
|
- spec/assets/public.key.pem
|
@@ -248,6 +250,7 @@ test_files:
|
|
248
250
|
- spec/assets/signed-act-wrong-transxslt-alg.xml
|
249
251
|
- spec/assets/signed-info-for-act-birth.xml
|
250
252
|
- spec/assets/signed.test.xml
|
253
|
+
- spec/assets/transformed.xml
|
251
254
|
- spec/assets/unsigned.test.xml
|
252
255
|
- spec/assets/x509.crt
|
253
256
|
- spec/spec_helper.rb
|
Binary file
|