Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

More widget stuff

  • Loading branch information...
commit d78c106751765782b083bc93ba4063fb37d37951 1 parent 91ee1c6
Marcos Caceres authored
Showing with 17,378 additions and 0 deletions.
  1. +1,395 −0 digsig/Overview-diff.html
  2. +572 −0 digsig/Overview.html
  3. +554 −0 digsig/Overview.src.html
  4. +1 −0  digsig/errata.html
  5. BIN  digsig/images/digsigchain.mindnode
  6. BIN  digsig/images/digsigchain.png
  7. +61 −0 digsig/imp-report/Overview.html
  8. +28 −0 digsig/imp-report/results/aplix.xml
  9. +33 −0 digsig/imp-report/results/borqs.xml
  10. +33 −0 digsig/imp-report/results/obigo.xml
  11. +47 −0 digsig/ns/index.html
  12. +572 −0 digsig/pub/Overview.html
  13. BIN  digsig/pub/images/digsigchain.png
  14. +77 −0 digsig/style.css
  15. +47 −0 digsig/test-suite/Overview.html
  16. +82 −0 digsig/test-suite/keys/2.rsa.cert.pem
  17. +27 −0 digsig/test-suite/keys/2.rsa.key.pem
  18. BIN  digsig/test-suite/keys/2.rsa.p12
  19. +81 −0 digsig/test-suite/keys/3.rsa.cert.pem
  20. +27 −0 digsig/test-suite/keys/3.rsa.key.pem
  21. BIN  digsig/test-suite/keys/3.rsa.p12
  22. +81 −0 digsig/test-suite/keys/revoked.13a.rsa.cert.pem
  23. +27 −0 digsig/test-suite/keys/revoked.13a.rsa.key.pem
  24. BIN  digsig/test-suite/keys/revoked.13a.rsa.p12
  25. +81 −0 digsig/test-suite/keys/revoked.13b.rsa.cert.pem
  26. +27 −0 digsig/test-suite/keys/revoked.13b.rsa.key.pem
  27. BIN  digsig/test-suite/keys/revoked.13b.rsa.p12
  28. +97 −0 digsig/test-suite/keys/revoked.rsa.cert.pem
  29. +27 −0 digsig/test-suite/keys/revoked.rsa.key.pem
  30. BIN  digsig/test-suite/keys/revoked.rsa.p12
  31. +23 −0 digsig/test-suite/keys/root.cert.pem
  32. +27 −0 digsig/test-suite/keys/root.key.pem
  33. BIN  digsig/test-suite/keys/root.p12
  34. +12 −0 digsig/test-suite/keys/testCA/crl/2.rsa.crl
  35. +12 −0 digsig/test-suite/keys/testCA/crl/revoked.13b.rsa.crl
  36. +14 −0 digsig/test-suite/keys/testCA/crl/revoked.crl
  37. +11 −0 digsig/test-suite/keys/testCA/crl/root.crl
  38. +1 −0  digsig/test-suite/keys/testCA/crlnumber
  39. +4 −0 digsig/test-suite/keys/testCA/index.txt
  40. +1 −0  digsig/test-suite/keys/testCA/index.txt.attr
  41. +1 −0  digsig/test-suite/keys/testCA/index.txt.attr.old
  42. +4 −0 digsig/test-suite/keys/testCA/index.txt.old
  43. +82 −0 digsig/test-suite/keys/testCA/newcerts/01.pem
  44. +81 −0 digsig/test-suite/keys/testCA/newcerts/02.pem
  45. +81 −0 digsig/test-suite/keys/testCA/newcerts/03.pem
  46. +81 −0 digsig/test-suite/keys/testCA/newcerts/04.pem
  47. +63 −0 digsig/test-suite/keys/testCA/newcerts/05.pem
  48. +81 −0 digsig/test-suite/keys/testCA/newcerts/06.pem
  49. +81 −0 digsig/test-suite/keys/testCA/newcerts/07.pem
  50. +1 −0  digsig/test-suite/keys/testCA/serial
  51. +1 −0  digsig/test-suite/keys/testCA/serial.old
  52. BIN  digsig/test-suite/test-cases/ta-11/11a/11a.wgt
  53. +1 −0  digsig/test-suite/test-cases/ta-11/11a/LICENSE
  54. +5 −0 digsig/test-suite/test-cases/ta-11/11a/config.xml
  55. +11 −0 digsig/test-suite/test-cases/ta-11/11a/index.html
  56. +108 −0 digsig/test-suite/test-cases/ta-11/11a/signature1.xml
  57. BIN  digsig/test-suite/test-cases/ta-11/11b/11b.wgt
  58. +1 −0  digsig/test-suite/test-cases/ta-11/11b/LICENSE
  59. +5 −0 digsig/test-suite/test-cases/ta-11/11b/config.xml
  60. +11 −0 digsig/test-suite/test-cases/ta-11/11b/index.html
  61. +111 −0 digsig/test-suite/test-cases/ta-11/11b/signature1.xml
  62. BIN  digsig/test-suite/test-cases/ta-12/12a/12a.wgt
  63. +1 −0  digsig/test-suite/test-cases/ta-12/12a/LICENSE
  64. +108 −0 digsig/test-suite/test-cases/ta-12/12a/author-signature.xml
  65. +5 −0 digsig/test-suite/test-cases/ta-12/12a/config.xml
  66. +11 −0 digsig/test-suite/test-cases/ta-12/12a/index.html
  67. BIN  digsig/test-suite/test-cases/ta-12/12b/12b.wgt
  68. +1 −0  digsig/test-suite/test-cases/ta-12/12b/LICENSE
  69. +111 −0 digsig/test-suite/test-cases/ta-12/12b/author-signature.xml
  70. +5 −0 digsig/test-suite/test-cases/ta-12/12b/config.xml
  71. +11 −0 digsig/test-suite/test-cases/ta-12/12b/index.html
  72. BIN  digsig/test-suite/test-cases/ta-13/13a/13a.wgt
  73. +1 −0  digsig/test-suite/test-cases/ta-13/13a/LICENSE
  74. +5 −0 digsig/test-suite/test-cases/ta-13/13a/config.xml
  75. +11 −0 digsig/test-suite/test-cases/ta-13/13a/index.html
  76. +81 −0 digsig/test-suite/test-cases/ta-13/13a/signature1.xml
  77. BIN  digsig/test-suite/test-cases/ta-13/13b/13b.wgt
  78. +1 −0  digsig/test-suite/test-cases/ta-13/13b/LICENSE
  79. +5 −0 digsig/test-suite/test-cases/ta-13/13b/config.xml
  80. +11 −0 digsig/test-suite/test-cases/ta-13/13b/index.html
  81. +92 −0 digsig/test-suite/test-cases/ta-13/13b/signature1.xml
  82. BIN  digsig/test-suite/test-cases/ta-16/16c/16c.wgt
  83. +1 −0  digsig/test-suite/test-cases/ta-16/16c/LICENSE
  84. +108 −0 digsig/test-suite/test-cases/ta-16/16c/author-signature.xml
  85. +5 −0 digsig/test-suite/test-cases/ta-16/16c/config.xml
  86. +11 −0 digsig/test-suite/test-cases/ta-16/16c/index.html
  87. +111 −0 digsig/test-suite/test-cases/ta-16/16c/signature1.xml
  88. BIN  digsig/test-suite/test-cases/ta-16/16e/16e.wgt
  89. +1 −0  digsig/test-suite/test-cases/ta-16/16e/LICENSE
  90. +5 −0 digsig/test-suite/test-cases/ta-16/16e/config.xml
  91. +12 −0 digsig/test-suite/test-cases/ta-16/16e/index.html
  92. +112 −0 digsig/test-suite/test-cases/ta-16/16e/signature1.xml
  93. BIN  digsig/test-suite/test-cases/ta-16/16f/16f.wgt
  94. +1 −0  digsig/test-suite/test-cases/ta-16/16f/LICENSE
  95. +5 −0 digsig/test-suite/test-cases/ta-16/16f/config.xml
  96. +12 −0 digsig/test-suite/test-cases/ta-16/16f/index.html
  97. +107 −0 digsig/test-suite/test-cases/ta-16/16f/signature1.xml
  98. BIN  digsig/test-suite/test-cases/ta-16/16g/16g.wgt
  99. +1 −0  digsig/test-suite/test-cases/ta-16/16g/LICENSE
  100. +5 −0 digsig/test-suite/test-cases/ta-16/16g/config.xml
  101. +11 −0 digsig/test-suite/test-cases/ta-16/16g/index.html
  102. +115 −0 digsig/test-suite/test-cases/ta-16/16g/signature1.xml
  103. BIN  digsig/test-suite/test-cases/ta-24/24a/24a.wgt
  104. +1 −0  digsig/test-suite/test-cases/ta-24/24a/LICENSE
  105. +5 −0 digsig/test-suite/test-cases/ta-24/24a/config.xml
  106. +5 −0 digsig/test-suite/test-cases/ta-24/24a/index.html
  107. +111 −0 digsig/test-suite/test-cases/ta-24/24a/signature1.xml
  108. BIN  digsig/test-suite/test-cases/ta-25/25a/25a.wgt
  109. +1 −0  digsig/test-suite/test-cases/ta-25/25a/LICENSE
  110. +5 −0 digsig/test-suite/test-cases/ta-25/25a/config.xml
  111. +10 −0 digsig/test-suite/test-cases/ta-25/25a/index.html
  112. +111 −0 digsig/test-suite/test-cases/ta-25/25a/signature1.xml
  113. BIN  digsig/test-suite/test-cases/ta-28/28a/28a.wgt
  114. +1 −0  digsig/test-suite/test-cases/ta-28/28a/LICENSE
  115. +5 −0 digsig/test-suite/test-cases/ta-28/28a/config.xml
  116. +13 −0 digsig/test-suite/test-cases/ta-28/28a/index.html
  117. +108 −0 digsig/test-suite/test-cases/ta-28/28a/signature1.xml
  118. BIN  digsig/test-suite/test-cases/ta-29/29a/29a.wgt
  119. +1 −0  digsig/test-suite/test-cases/ta-29/29a/LICENSE
  120. +111 −0 digsig/test-suite/test-cases/ta-29/29a/author-signature.xml
  121. +4 −0 digsig/test-suite/test-cases/ta-29/29a/config.xml
  122. +10 −0 digsig/test-suite/test-cases/ta-29/29a/index.html
  123. +111 −0 digsig/test-suite/test-cases/ta-29/29a/signature1.xml
  124. BIN  digsig/test-suite/test-cases/ta-33/33a/33a.wgt
  125. +1 −0  digsig/test-suite/test-cases/ta-33/33a/LICENSE
  126. +5 −0 digsig/test-suite/test-cases/ta-33/33a/config.xml
  127. +12 −0 digsig/test-suite/test-cases/ta-33/33a/index.html
  128. +108 −0 digsig/test-suite/test-cases/ta-33/33a/signature1.xml
  129. BIN  digsig/test-suite/test-cases/ta-34/34a/34a.wgt
  130. +1 −0  digsig/test-suite/test-cases/ta-34/34a/LICENSE
  131. +5 −0 digsig/test-suite/test-cases/ta-34/34a/config.xml
  132. +10 −0 digsig/test-suite/test-cases/ta-34/34a/index.html
  133. +112 −0 digsig/test-suite/test-cases/ta-34/34a/signature1.xml
  134. BIN  digsig/test-suite/test-cases/ta-35/35a/35a.wgt
  135. +1 −0  digsig/test-suite/test-cases/ta-35/35a/LICENSE
  136. +5 −0 digsig/test-suite/test-cases/ta-35/35a/config.xml
  137. +11 −0 digsig/test-suite/test-cases/ta-35/35a/index.html
  138. +124 −0 digsig/test-suite/test-cases/ta-35/35a/signature1.xml
  139. BIN  digsig/test-suite/test-cases/ta-37/37a/37a.wgt
  140. +1 −0  digsig/test-suite/test-cases/ta-37/37a/LICENSE
  141. +5 −0 digsig/test-suite/test-cases/ta-37/37a/config.xml
  142. +11 −0 digsig/test-suite/test-cases/ta-37/37a/index.html
  143. +91 −0 digsig/test-suite/test-cases/ta-37/37a/signature1.xml
  144. BIN  digsig/test-suite/test-cases/ta-37/37b/37b.wgt
  145. +1 −0  digsig/test-suite/test-cases/ta-37/37b/LICENSE
  146. +5 −0 digsig/test-suite/test-cases/ta-37/37b/config.xml
  147. +11 −0 digsig/test-suite/test-cases/ta-37/37b/index.html
  148. +104 −0 digsig/test-suite/test-cases/ta-37/37b/signature1.xml
  149. BIN  digsig/test-suite/test-cases/ta-40/40a/40a.wgt
  150. +1 −0  digsig/test-suite/test-cases/ta-40/40a/LICENSE
  151. +111 −0 digsig/test-suite/test-cases/ta-40/40a/author-signature.xml
  152. +7 −0 digsig/test-suite/test-cases/ta-40/40a/config.xml
  153. +5 −0 digsig/test-suite/test-cases/ta-40/40a/index.html
  154. +115 −0 digsig/test-suite/test-cases/ta-40/40a/signature1.xml
  155. +115 −0 digsig/test-suite/test-cases/ta-40/40a/signature2.xml
  156. +115 −0 digsig/test-suite/test-cases/ta-40/40a/signature987654321.xml
  157. BIN  digsig/test-suite/test-cases/ta-validation/bad_hash/bad_hash.wgt
  158. +4 −0 digsig/test-suite/test-cases/ta-validation/bad_hash/config.xml
  159. +10 −0 digsig/test-suite/test-cases/ta-validation/bad_hash/index.html
  160. +79 −0 digsig/test-suite/test-cases/ta-validation/bad_hash/signature1.xml
  161. BIN  digsig/test-suite/test-cases/ta-validation/bad_signature/bad_signature.wgt
  162. +4 −0 digsig/test-suite/test-cases/ta-validation/bad_signature/config.xml
  163. +10 −0 digsig/test-suite/test-cases/ta-validation/bad_signature/index.html
  164. +79 −0 digsig/test-suite/test-cases/ta-validation/bad_signature/signature1.xml
  165. BIN  digsig/test-suite/test-cases/ta-validation/changed_file/changed_file.wgt
  166. +5 −0 digsig/test-suite/test-cases/ta-validation/changed_file/config.xml
  167. +10 −0 digsig/test-suite/test-cases/ta-validation/changed_file/index.html
  168. +79 −0 digsig/test-suite/test-cases/ta-validation/changed_file/signature1.xml
  169. +1 −0  digsig/test-suite/test-cases/template/LICENSE
  170. +5 −0 digsig/test-suite/test-cases/template/config.xml
  171. +11 −0 digsig/test-suite/test-cases/template/index.html
  172. +121 −0 digsig/test-suite/test-suite.xml
  173. +38 −0 digsig/test-suite/tools/README
  174. +159 −0 digsig/test-suite/tools/
  175. +52 −0 digsig/test-suite/tools/
  176. +313 −0 digsig/test-suite/tools/openssl.cnf
  177. +16 −0 digsig/test-suite/tools/
  178. +67 −0 digsig/test-suite/tools/
  179. +169 −0 digsig/test-suite/tools/
  180. +95 −0 digsig/test-suite/tools/
  181. +89 −0 digsig/test-suite/tools/
  182. +253 −0 digsig/test-suite/tools/xmldsig.rnc
  183. +1,548 −0 digsig/wd-snapshot/Overview.html
  184. +1,170 −0 digsig/wd-snapshot/Overview.src.html
  185. +77 −0 digsig/wd-snapshot/style.css
  186. +1,394 −0 updates/Overview.html
  187. +1,019 −0 updates/Overview.src.html
  188. +85 −0 updates/imp-report/Overview.html
  189. +8 −0 updates/imp-report/results/opera.xml
  190. +22 −0 updates/imp-report/results/wookie.xml
  191. +1,394 −0 updates/pub/Overview.html
  192. +282 −0 updates/test-suite/Overview.html
  193. +12 −0 updates/test-suite/resources/.htaccess
  194. BIN  updates/test-suite/resources/fail-wrong-ct.wgt
  195. BIN  updates/test-suite/resources/fail.wgt
  196. BIN  updates/test-suite/resources/invalid.wgt
  197. BIN  updates/test-suite/resources/none.wgt
  198. +468 −0 updates/test-suite/resources/out.php
  199. BIN  updates/test-suite/resources/pass.wgt
  200. +4 −0 updates/test-suite/resources/udd-none.xml
  201. BIN  updates/test-suite/resources/wgt_same_version.wgt
  202. +1 −0  updates/test-suite/test-cases/ta-acquisition1/001/LICENSE
  203. +6 −0 updates/test-suite/test-cases/ta-acquisition1/001/config.xml
  204. +15 −0 updates/test-suite/test-cases/ta-acquisition1/001/index.htm
  205. BIN  updates/test-suite/test-cases/ta-acquisition1/001/ta-ac-001.wgt
  206. +1 −0  updates/test-suite/test-cases/ta-acquisition10/001/LICENSE
  207. +6 −0 updates/test-suite/test-cases/ta-acquisition10/001/config.xml
  208. +15 −0 updates/test-suite/test-cases/ta-acquisition10/001/index.htm
  209. BIN  updates/test-suite/test-cases/ta-acquisition10/001/ta-ac-001.wgt
  210. +1 −0  updates/test-suite/test-cases/ta-acquisition10/002/LICENSE
  211. +6 −0 updates/test-suite/test-cases/ta-acquisition10/002/config.xml
  212. +15 −0 updates/test-suite/test-cases/ta-acquisition10/002/index.htm
  213. BIN  updates/test-suite/test-cases/ta-acquisition10/002/ta-ac-002.wgt
  214. +1 −0  updates/test-suite/test-cases/ta-acquisition10/003/LICENSE
  215. +6 −0 updates/test-suite/test-cases/ta-acquisition10/003/config.xml
  216. +15 −0 updates/test-suite/test-cases/ta-acquisition10/003/index.htm
  217. BIN  updates/test-suite/test-cases/ta-acquisition10/003/ta-ac-003.wgt
  218. +1 −0  updates/test-suite/test-cases/ta-acquisition10/004/LICENSE
  219. +6 −0 updates/test-suite/test-cases/ta-acquisition10/004/config.xml
  220. +15 −0 updates/test-suite/test-cases/ta-acquisition10/004/index.htm
  221. BIN  updates/test-suite/test-cases/ta-acquisition10/004/ta-ac-004.wgt
  222. +1 −0  updates/test-suite/test-cases/ta-acquisition11/001/LICENSE
  223. +6 −0 updates/test-suite/test-cases/ta-acquisition11/001/config.xml
  224. +15 −0 updates/test-suite/test-cases/ta-acquisition11/001/index.htm
  225. BIN  updates/test-suite/test-cases/ta-acquisition11/001/ta-ac-001.wgt
  226. +1 −0  updates/test-suite/test-cases/ta-acquisition12/001/LICENSE
  227. +6 −0 updates/test-suite/test-cases/ta-acquisition12/001/config.xml
  228. +15 −0 updates/test-suite/test-cases/ta-acquisition12/001/index.htm
  229. BIN  updates/test-suite/test-cases/ta-acquisition12/001/ta-ac-001.wgt
  230. +1 −0  updates/test-suite/test-cases/ta-acquisition13/001/LICENSE
  231. +6 −0 updates/test-suite/test-cases/ta-acquisition13/001/config.xml
  232. +15 −0 updates/test-suite/test-cases/ta-acquisition13/001/index.htm
  233. BIN  updates/test-suite/test-cases/ta-acquisition13/001/ta-ac-001.wgt
  234. +1 −0  updates/test-suite/test-cases/ta-acquisition2/001/LICENSE
  235. +6 −0 updates/test-suite/test-cases/ta-acquisition2/001/config.xml
  236. +15 −0 updates/test-suite/test-cases/ta-acquisition2/001/index.htm
  237. BIN  updates/test-suite/test-cases/ta-acquisition2/001/ta-ac-001.wgt
  238. +1 −0  updates/test-suite/test-cases/ta-acquisition3/001/LICENSE
  239. +6 −0 updates/test-suite/test-cases/ta-acquisition3/001/config.xml
  240. +15 −0 updates/test-suite/test-cases/ta-acquisition3/001/index.htm
  241. BIN  updates/test-suite/test-cases/ta-acquisition3/001/ta-ac-001.wgt
  242. +1 −0  updates/test-suite/test-cases/ta-acquisition4/001/LICENSE
  243. +6 −0 updates/test-suite/test-cases/ta-acquisition4/001/config.xml
  244. +15 −0 updates/test-suite/test-cases/ta-acquisition4/001/index.htm
  245. BIN  updates/test-suite/test-cases/ta-acquisition4/001/ta-ac-001.wgt
  246. +1 −0  updates/test-suite/test-cases/ta-acquisition4/002/LICENSE
  247. +6 −0 updates/test-suite/test-cases/ta-acquisition4/002/config.xml
  248. +15 −0 updates/test-suite/test-cases/ta-acquisition4/002/index.htm
  249. BIN  updates/test-suite/test-cases/ta-acquisition4/002/ta-ac-002.wgt
  250. +1 −0  updates/test-suite/test-cases/ta-acquisition4/003/LICENSE
  251. +6 −0 updates/test-suite/test-cases/ta-acquisition4/003/config.xml
  252. +15 −0 updates/test-suite/test-cases/ta-acquisition4/003/index.htm
  253. BIN  updates/test-suite/test-cases/ta-acquisition4/003/ta-ac-003.wgt
  254. +1 −0  updates/test-suite/test-cases/ta-acquisition5/001/LICENSE
  255. +6 −0 updates/test-suite/test-cases/ta-acquisition5/001/config.xml
  256. +15 −0 updates/test-suite/test-cases/ta-acquisition5/001/index.htm
  257. BIN  updates/test-suite/test-cases/ta-acquisition5/001/ta-ac-001.wgt
  258. +1 −0  updates/test-suite/test-cases/ta-acquisition6/001/LICENSE
  259. +6 −0 updates/test-suite/test-cases/ta-acquisition6/001/config.xml
  260. +15 −0 updates/test-suite/test-cases/ta-acquisition6/001/index.htm
  261. BIN  updates/test-suite/test-cases/ta-acquisition6/001/ta-ac-001.wgt
  262. +1 −0  updates/test-suite/test-cases/ta-acquisition7/001/LICENSE
  263. +6 −0 updates/test-suite/test-cases/ta-acquisition7/001/config.xml
  264. +15 −0 updates/test-suite/test-cases/ta-acquisition7/001/index.htm
  265. BIN  updates/test-suite/test-cases/ta-acquisition7/001/ta-ac-001.wgt
  266. +1 −0  updates/test-suite/test-cases/ta-acquisition8/001/LICENSE
  267. +6 −0 updates/test-suite/test-cases/ta-acquisition8/001/config.xml
  268. +15 −0 updates/test-suite/test-cases/ta-acquisition8/001/index.htm
  269. BIN  updates/test-suite/test-cases/ta-acquisition8/001/ta-ac-001.wgt
  270. +1 −0  updates/test-suite/test-cases/ta-acquisition8/002/LICENSE
  271. +6 −0 updates/test-suite/test-cases/ta-acquisition8/002/config.xml
  272. +15 −0 updates/test-suite/test-cases/ta-acquisition8/002/index.htm
  273. BIN  updates/test-suite/test-cases/ta-acquisition8/002/ta-ac-002.wgt
  274. +1 −0  updates/test-suite/test-cases/ta-acquisition8/003/LICENSE
  275. +6 −0 updates/test-suite/test-cases/ta-acquisition8/003/config.xml
  276. +15 −0 updates/test-suite/test-cases/ta-acquisition8/003/index.htm
  277. BIN  updates/test-suite/test-cases/ta-acquisition8/003/ta-ac-003.wgt
  278. +1 −0  updates/test-suite/test-cases/ta-acquisition8/004/LICENSE
  279. +6 −0 updates/test-suite/test-cases/ta-acquisition8/004/config.xml
  280. +14 −0 updates/test-suite/test-cases/ta-acquisition8/004/index.htm
  281. BIN  updates/test-suite/test-cases/ta-acquisition8/004/ta-ac-004.wgt
  282. +1 −0  updates/test-suite/test-cases/ta-acquisition9/001/LICENSE
  283. +6 −0 updates/test-suite/test-cases/ta-acquisition9/001/config.xml
  284. +15 −0 updates/test-suite/test-cases/ta-acquisition9/001/index.htm
  285. BIN  updates/test-suite/test-cases/ta-acquisition9/001/ta-ac-001.wgt
  286. +1 −0  updates/test-suite/test-cases/ta-preparation1/001/LICENSE
  287. +6 −0 updates/test-suite/test-cases/ta-preparation1/001/config.xml
  288. +15 −0 updates/test-suite/test-cases/ta-preparation1/001/index.htm
  289. BIN  updates/test-suite/test-cases/ta-preparation1/001/ta-pr-001.wgt
  290. +1 −0  updates/test-suite/test-cases/ta-preparation1/002/LICENSE
  291. +5 −0 updates/test-suite/test-cases/ta-preparation1/002/config.xml
  292. +15 −0 updates/test-suite/test-cases/ta-preparation1/002/index.htm
  293. BIN  updates/test-suite/test-cases/ta-preparation1/002/ta-pr-002.wgt
  294. +1 −0  updates/test-suite/test-cases/ta-preparation1/003/LICENSE
  295. +4 −0 updates/test-suite/test-cases/ta-preparation1/003/config.xml
  296. +15 −0 updates/test-suite/test-cases/ta-preparation1/003/index.htm
  297. BIN  updates/test-suite/test-cases/ta-preparation1/003/ta-pr-003.wgt
  298. +1 −0  updates/test-suite/test-cases/ta-preparation1/004/LICENSE
  299. +5 −0 updates/test-suite/test-cases/ta-preparation1/004/config.xml
  300. +15 −0 updates/test-suite/test-cases/ta-preparation1/004/index.htm
Sorry, we could not display the entire diff because too many files (445) changed.
1,395 digsig/Overview-diff.html
@@ -0,0 +1,1395 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "">
+<html xmlns="">
+<meta content="text/html; charset=utf-8" http-equiv=
+"Content-Type" />
+<title>Widgets 1.0: Digital Signatures</title>
+<link href="style.css" rel="stylesheet" type="text/css" />
+<link href="" rel=
+"stylesheet" type="text/css" />
+<style type='text/css'>
+.diff-old-a {
+ font-size: smaller;
+ color: red;
+.diff-new { background-color: yellow; }
+.diff-chg { background-color: lime; }
+ { content: "\2191" }
+.diff-chg:before, .diff-chg:after
+ { content: "\2195" }
+.diff-old { text-decoration: line-through; background-color: #FBB; }
+ { content: "\2193" }
+:focus { border: thin red solid}
+<div class="head">
+<p><a href=""><img alt="W3C" height="48" src=
+"" width="72" /></a></p>
+<h1 class="head">Widgets 1.0: Digital Signatures</h1>
+<h2 class="no-num no-toc" id="editors-draft-date">W3C <del class=
+"diff-old">Working Draft 30 April</del> <ins class=
+"diff-chg">Candidate Recommendation 12 June</ins> 2009</h2>
+<dt>This Version:</dt>
+<dd><del class=
+<a href=
+""><ins class=
+<dt>Latest Version:</dt>
+<dd><a href=
+<dt>Previous Versions:</dt>
+<dd><a href=
+""><ins class=
+<dd><a href=
+<dd><a href=
+<dd><ins class="diff-new">&nbsp;</ins></dd>
+<dt>Latest Editor's Draft:</dt>
+<dd><a href=
+<dt>Version history:</dt>
+<dd>Twitter messages (non-editorial changes only): <a href=
+( <a href=
+<dd>Frederick Hirsch, Nokia</dd>
+<dd><a href="">Marcos <del class=
+"diff-old">Caceres</del> <ins class="diff-chg">Cáceres</ins></a> ,
+Opera Software ASA</dd>
+<dd>Mark Priestley, Vodafone</dd>
+<p class="copyright"><a href=
+"" rel=
+"license">Copyright</a> © 2009 <a href=
+""><acronym title=
+"World Wide Web Consortium">W3C</acronym></a> <sup>®</sup> (
+<a href=""><acronym title=
+"Massachusetts Institute of Technology">MIT</acronym></a> ,
+<a href=""><acronym title=
+"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>
+, <a href="">Keio</a> ), All Rights Reserved.
+W3C <a href=
+, <a href=
+and <a href=
+use</a> rules apply.</p>
+<hr />
+<h2 class="no-num no-toc" id="abstract">Abstract</h2>
+<p class="no-num no-toc">This document defines a profile of the
+<cite><a href=
+XML Signature Syntax and Processing 1.1</a></cite> specification to
+allow a <a href="#widget-package">widget package</a> to be
+digitally signed. Widget authors and distributors can digitally
+sign widgets as a mechanism to ensure continuity of authorship and
+distributorship. Prior to instantiation, a user agent can use the
+digital signature to verify the integrity of the <a href=
+"#widget-package">widget package</a> and to confirm the signing
+key(s). This document specifies conformance requirements on both
+widget packages and user agents.</p>
+<h2 class="no-num no-toc" id="status">Status of this Document</h2>
+<p><ins class="diff-new">This is the 12 June 2009 Candidate
+Recommendation of the Widgets 1.0: Digital Signature specification.
+W3C publishes a Candidate Recommendation to indicate that the
+document is believed to be stable and to encourage implementation
+by the developer community. The Web Applications (WebApps) Working
+Group expects to request that the Director advance this document to
+Proposed Recommendation once the Working Group has developed a
+comprehensive Widgets 1.0: Digital Signature test suite, and
+demonstrated at least two interoperable implementations for each
+test. The WebApps Working Group expects to show these
+implementations by September 2009. The Working Group does not plan
+to request to advance to Proposed Recommendation prior to 01
+September 2009.</ins></p>
+<p>Publication as a <del class="diff-old">Working Draft</del>
+<ins class="diff-chg">Candidate Recommendation</ins> does not imply
+endorsement by the W3C Membership. This is a draft document and may
+be updated, replaced or obsoleted by other documents at any time.
+It is inappropriate to cite this document as other than work in
+<p><em>This section describes the status of this document at the
+time of its publication. Other documents may supersede this
+document. A list of current W3C publications and the latest
+revision of this technical report can be found in the <a href=
+"">W3C technical reports index</a> at
+<p>This document was produced by a group operating under the
+<a href="">5
+February 2004 W3C Patent Policy</a> . W3C maintains a <a href=
+"" rel=
+"disclosure">public list of any patent disclosures</a> made in
+connection with the deliverables of the group; that page also
+includes instructions for disclosing a patent. An individual who
+has actual knowledge of a patent which the individual believes
+contains <a href=
+Essential Claim(s)</a> must disclose the information in accordance
+with <a href=
+section 6 of the W3C Patent Policy</a> .</p>
+<p><strong>You can find the latest <a href=
+"">Editor's Draft</a> of
+this document in the <a href="">W3C's CVS
+repository</a> , which is updated on a very regular basis.</strong>
+The public is encouraged to send comments to the WebApps Working
+Group's public mailing list <a href=
+""></a> ( <a href=
+). See <a href="">W3C mailing list and
+archive usage guidelines</a> . A detailed <a href=
+"">list of
+changes</a> from the previous version is also available from the
+W3C's CVS server.</p>
+<p>This <del class="diff-old">is the 30 April 2009 Last Call
+Working Draft version of the "Widgets 1.0 Digital Signature
+Specification". The Last Call period ends on 1 June 2009.
+This</del> document is produced by the <a href=
+"">Web Applications WG</a> , part of
+the <a href="">Rich Web Clients
+Activity</a> in the W3C <a href=
+"">Interaction Domain</a> .</p>
+<h2 class="no-num no-toc" id="toc">Table of Contents</h2>
+<ul class="toc">
+<li><a href="#introduction"><span class="secno">1</span>
+<ul class="toc">
+<li><a href="#versions-namespaces-and-identifiers"><span class=
+"secno">1.1</span> Versions, Namespaces and Identifiers</a></li>
+<li><a href="#definitions"><span class="secno">1.2</span>
+<li><a href="#conventions"><span class="secno">1.3</span>
+<li><a href="#example"><span class="secno">1.4</span>
+<li><a href="#requirements"><span class="secno">2</span> Design
+Goals and Requirements</a></li>
+<li><a href="#conformance"><span class="secno">3</span>
+<li><a href="#locating-signatures"><span class="secno">4</span>
+Locating and Processing Digital Signatures for the Widget</a></li>
+<li><a href="#use-and-syntax"><span class="secno">5</span>
+Signature Syntax and use in Widget Packages</a>
+<ul class="toc">
+<li><a href="#use"><span class="secno">5.1</span> Use of XML
+Signature in Widgets</a></li>
+<li><a href="#author-signatures"><span class="secno">5.2</span>
+Author Signature</a>
+<ul class="toc">
+<li><a href=
+"#naming-convention-for-an-author-signatur"><span class="secno">5.2.1</span>
+Naming Convention for an Author Signature</a></li>
+<li><a href="#distributor-signatures"><span class=
+"secno">5.3</span> Distributor Signatures</a>
+<ul class="toc">
+<li><a href=
+"#naming-convention-for-a-distributor-sign"><span class="secno">5.3.1</span>
+Naming Convention for a Distributor Signature</a></li>
+<li><a href="#x.509-data"><span class="secno">5.4</span> X.509
+<li><a href="#identifier-signature-property"><span class=
+"secno">5.5</span> <code>Identifier</code> Signature
+<li><a href="#algorithms"><span class="secno">6</span>
+<ul class="toc">
+<li><a href="#signature-algorithms"><span class="secno">6.1</span>
+Signature Algorithms</a></li>
+<li><a href="#digest-algorithms"><span class="secno">6.2</span>
+Digest Algorithms</a></li>
+<li><a href="#canonicalization-algorithms"><span class=
+"secno">6.3</span> Canonicalization Algorithms</a></li>
+<li><a href="#processing-rules"><span class="secno">7</span>
+Processing Rules</a>
+<ul class="toc">
+<li><a href="#common-constraints"><span class="secno">7.1</span>
+Common Constraints for Signature Generation and Validation</a></li>
+<li><a href="#signature-generation"><span class="secno">7.2</span>
+Signature Generation</a></li>
+<li><a href="#signature-verification"><span class=
+"secno">7.3</span> Signature Verification</a></li>
+<li><a href="#security-considerations"><span class="secno">8</span>
+Security Considerations</a></li>
+<li class="no-num"><a href=
+<li class="no-num"><a href="#references">References</a></li>
+<h2 id="introduction"><span class="secno">1</span>
+<p class="no-num no-toc">This document defines a profile of the
+<cite><a href=
+XML Signature Syntax and Processing 1.1</a></cite> specification to
+allow a <a href="#widget-package">widget package</a> to be
+digitally signed. Widget authors and distributors can digitally
+sign widgets as a mechanism to ensure continuity of authorship and
+distributorship. Prior to instantiation, a user agent can use the
+digital signature to verify the integrity of the <a href=
+"#widget-package">widget package</a> and to confirm the signing
+key(s). This document specifies conformance requirements on both
+widget packages and user agents.</p>
+<p>A <a href="#widget-package">widget package</a> can be signed by
+the author of the widget producing an <a href=
+"#xmldsig11">[XMLDSIG11]</a> signature that cryptographically
+includes all of the file entries other than <a href=
+"#signature-file" title="signature file">signature <del class=
+"diff-old">file s.</del> <ins class="diff-chg">files</ins></a> . A
+widget package can also be signed by one or more distributors of
+the widget, producing <a href="#xmldsig11">[XMLDSIG11]</a>
+signatures that each cryptographically includes all of the
+non-signature file entries as well as any <a href=
+"#author-signature">author signature</a> .</p>
+<h3 id="versions-namespaces-and-identifiers"><span class=
+"secno">1.1</span> Versions, Namespaces and Identifiers</h3>
+<p>This specification makes use of <a href=
+"#xml-namespaces">[XML-Namespaces]</a> , and uses Uniform Resource
+Identifiers <a href="#uri">[URI]</a> to identify resources,
+algorithms, and semantics.</p>
+<p>Implementations of this specification <em class="ct">MUST</em>
+use the following URI as the XML namespace for <a href=
+"#xml">[XML]</a> elements used by this specification:</p>
+<p>Implementations <em class="ct">MUST</em> support the <a href=
+"#xml">[XML]</a> specification and the <a href=
+"#xml-namespaces">[XML-Namespaces]</a> specification.</p>
+<p>While use of the above namespace URI is <em class=
+"ct">REQUIRED</em> for XML elements used by this specification, the
+namespace prefix and entity declaration given below are merely
+editorial conventions used in this document. Their use by authors
+of digital signature documents is <em class="ct">OPTIONAL</em>
+<dt>XML internal entity:</dt>
+<dd><code>&lt;!ENTITY wsig
+<dt>Namespace Prefix:</dt>
+<div class="example">
+<p>For resources not under the control of this specification, we
+use the designated Uniform Resource Identifiers <a href=
+"#uri">[URI]</a> defined by the relevant specifications. For
+<dt style="font-weight: normal;">XML Signature <a href=
+"#xmldsig-2nded">[XMLDSIG-2ndEd]</a> resources are defined in the
+<code>ds:</code> namespace</dt>
+<dt style="font-weight: normal;">Additional XML Signature 1.1
+<a href="#xmldsig11">[XMLDSIG11]</a> resources are defined in the
+<code>ds11:</code> namespace</dt>
+<dt style="font-weight: normal;">Individual Signature Properties
+<a href="#xmldsig-properties">[XMLDSIG-Properties]</a> such as
+<code>Role</code> are defined in the <code>dsp:</code>
+<dt style="font-weight: normal;">Algorithms used by XML Security
+are defined in a number of places, including XML Signature
+<dd>See the XML Security Algorithm Cross-Reference for details [
+<a href="#xmlsecalgs">XMLSecAlgs</a> ].</dd>
+<p class="note">Note: No provision is made for an explicit version
+number in this specification. If a future version of this
+specification requires explicit versioning of the document format,
+a different namespace will be used.</p>
+<h3 id="definitions"><span class="secno">1.2</span>
+<p>A <dfn id="widget-package">widget package</dfn> is a <a href=
+"#zip">[Zip]</a> archive that conforms to the <a href=
+"#widgets-packaging">[Widgets Packaging]</a> specification.</p>
+<p>A <dfn id="file-entry">file entry</dfn> is the compressed (or
+Stored <a href="#zip">[ZIP]</a> ) representation of a physical file
+or folder contained within a <a href="#widget-package">widget
+package</a> , as defined in the <a href=
+"#widgets-packaging">[Widgets Packaging]</a> specification.</p>
+<p>The <dfn id="root-of-the-widget-package">root of the widget
+package</dfn> is the top-most path level of the <a href=
+"#widget-package">widget package</a> that can logically contain one
+or more file entries, as defined in the <a href=
+"#widgets-packaging">[Widgets Packaging]</a> specification.</p>
+<p>A <dfn id="file-name">file name</dfn> is the name of a file
+contained in a <a href="#widget-package">widget package</a>
+(derived from the <var>file name field</var> of a <var>local file
+header</var> of a <a href="#file-entry">file entry</a> ), as
+defined in the <a href="#widgets-packaging">[Widgets Packaging]</a>
+specification. All file names <em class="ct">MUST</em> be treated
+as case-sensitive. In other words, case matters in file name
+<p>A <dfn id="digitally-signed-widget-package">digitally signed
+widget package</dfn> is a <a href="#widget-package">widget
+package</a> that contains one or more <a href="#signature-file"
+title="signature file">signature <del class="diff-old">file
+s.</del> <ins class="diff-chg">files</ins></a> .</p>
+<p>An <dfn id="unsigned-widget-package">unsigned widget
+package</dfn> is a widget package that does not contain any
+signature files.</p>
+<p>A <dfn id="signature-file">signature file</dfn> is a <a href=
+"#file-entry">file entry</a> containing a detached <a href=
+"#xmldsig11">[XMLDSIG11]</a> signature (as profiled in this
+specification) whose file name follows the naming conventions of a
+<a href="#signature-file-name">signature file name</a> .</p>
+<p>A <dfn id="signature-file-name">signature file name</dfn> is a
+<a href="#file-name">file name</a> for a <a href="#file-entry">file
+entry</a> that represents a <a href="#signature-file">signature
+file</a> . This specification defines the naming conventions for
+both <a href="#author-signature" title="author signature">author
+<del class="diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> and
+<a href="#distributor-signature" title=
+"distributor signature">distributor <del class="diff-old">signature
+s.</del> <ins class="diff-chg">signatures</ins></a> .</p>
+<p>A <dfn id="widget-signature">widget signature</dfn> is an
+<a href="#xmldsig11">[XMLDSIG11]</a> signature, as contained in a
+<a href="#signature-file">signature file</a> .</p>
+<p>An <dfn id="author-signature">author signature</dfn> is a
+<a href="#widget-signature">widget signature</a> with a <del class=
+"diff-old">widget</del> <a href="#signature-file-name">signature
+file name</a> that adheres to the <a href=
+"#naming-convention-for-an-author-signatur0">naming convention for
+an author signature</a> and has an <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> <code>Role</code>
+element whose <code><a href="#uri">URI</a></code> attribute is
+equivalent to the <a class="label" href=
+"#author-role-attribute-value">author role attribute value</a> . An
+author signature is intended to be generated by the author of a
+widget (i.e., the person who authored the widget).</p>
+<p>A <dfn id="distributor-signature">distributor signature</dfn> is
+a <a href="#widget-signature">widget signature</a> with a <a href=
+"#signature-file-name">signature file name</a> that adheres to the
+<a href="#naming-convention-for-a-distributor-sign1">naming
+convention for a distributor signature</a> and has an <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> <code>Role</code>
+element whose <code><a href="#uri">URI</a></code> is equivalent to
+the <a class="label" href=
+"#distributor-role-attribute-value">distributor role attribute
+value</a> . A distributor signature is intended to be generated by
+the distributor of a widget (i.e., a third party that is
+distributing the widget on behalf of the author).</p>
+<p>A <dfn id="wall-clock-timestamp">wall clock timestamp</dfn> is
+defined in the <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> specification.</p>
+<p>A <dfn id="zip-relative-path">zip relative path</dfn> <em class=
+"ct">MUST</em> conform to the <a href="#abnf">[ABNF]</a> for
+<code>zip-rel-path</code> as specified in <a href=
+"#widgets-packaging">[Widgets Packaging]</a> .</p>
+<h3 id="conventions"><span class="secno">1.3</span>
+<p>This section is non-normative.</p>
+<p>Defined terms appear as this <dfn id=
+"sample-defined-term">sample defined term</dfn> . Such terms are
+referenced as <a href="#sample-defined-term">sample defined
+term</a> , providing a link back to where the term is defined.</p>
+<p>Words that denote a conformance clause or testable assertion use
+keywords from <a href="#rfc2119">[RFC2119]</a> : <em class=
+"ct">MUST</em> , <em class="ct">MUST NOT</em> , <em class=
+"ct">REQUIRED</em> , <em class="ct">SHOULD</em> , <em class=
+"ct">SHOULD NOT</em> , <em class="ct">RECOMMENDED</em> , <em class=
+"ct">MAY</em> and <em class="ct">OPTIONAL</em> .</p>
+<p>Variables are formatted specially, e.g. <var>variable</var> .
+Code is also specially formatted, such as <code>code</code> .</p>
+<p>Examples are highlighted to indicate the whole:</p>
+<div class="example">This is an example containing some code<br />
+<code>if (a &lt;&gt; 1234122){ // something }</code></div>
+<p class="note">Notes are highlighted specially and are used to
+note editorial issues, or items to be aware of.</p>
+<p>This specification uses <a href="#abnf">[ABNF]</a> syntax to
+define file names. Rules are concatenated by being written next to
+each other. A rule prefixed by <code>*</code> means zero or more.
+See <a href="#abnf">[ABNF]</a> for details on this syntax.</p>
+<h3 id="example"><span class="secno">1.4</span> Example</h3>
+<p><em>This section is non-normative.</em></p>
+<div class="example">
+<p>Example of a <a href="#distributor-signature">distributor
+signature</a> document, named <code>signature1.xml</code> :</p>
+<code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;Signature xmlns=""
+ Id="DistributorASignature"&gt;
+ &lt;SignedInfo&gt;
+ &lt;CanonicalizationMethod
+ Algorithm=""/&gt;
+ &lt;SignatureMethod
+ Algorithm="" /&gt;
+ &lt;Reference URI="config.xml"&gt;
+ &lt;DigestMethod
+ Algorithm=""/&gt;
+ &lt;DigestValue&gt;...&lt;/DigestValue&gt;
+ &lt;/Reference&gt;
+ &lt;Reference URI="index.html"&gt;
+ &lt;DigestMethod
+ Algorithm=""/&gt;
+ &lt;DigestValue&gt;...&lt;/DigestValue&gt;
+ &lt;/Reference&gt;
+ &lt;Reference URI="icon.png"&gt;
+ &lt;DigestMethod
+ Algorithm=""/&gt;
+ &lt;DigestValue&gt;...&lt;/DigestValue&gt;
+ &lt;/Reference&gt;
+ &lt;Reference URI="#prop"&gt;
+ &lt;DigestMethod
+ Algorithm=""/&gt;
+ &lt;DigestValue&gt;...&lt;/DigestValue&gt;
+ &lt;/Reference&gt;
+ &lt;/SignedInfo&gt;
+ &lt;Object Id="prop"&gt;
+ &lt;SignatureProperties
+ xmlns:dsp=""&gt;
+ &lt;SignatureProperty Id="profile" Target="#DistributorASignature"&gt;
+ &lt;dsp:Profile URI="" /&gt;
+ &lt;/SignatureProperty&gt;
+ &lt;SignatureProperty Id="role" Target="#DistributorASignature"&gt;
+ &lt;dsp:Role
+ URI="" /&gt;
+ &lt;/SignatureProperty&gt;
+ &lt;SignatureProperty Id="identifier" Target="#DistributorASignature"&gt;
+ &lt;dsp:Identifier&gt;07425f59c544b9cebff04ab367e8854a&lt;/dsp:Identifier&gt;
+ &lt;/SignatureProperty&gt;
+ &lt;/SignatureProperties&gt;
+ &lt;/Object&gt;
+ &lt;SignatureValue&gt;...&lt;/SignatureValue&gt;
+ &lt;KeyInfo&gt;
+ &lt;X509Data&gt;
+ &lt;X509Certificate&gt;...&lt;/X509Certificate&gt;
+ &lt;/X509Data&gt;
+ &lt;/KeyInfo&gt;
+<h2 id="requirements"><span class="secno">2</span> Design Goals and
+<p>The design goals and requirements for this specification are
+addressed in the <cite>Widgets 1.0 Requirements</cite> document
+<a href="#widgets-requirements">[Widgets Requirements]</a> . This
+document addresses the following requirements:</p>
+<li><del class="diff-old">R44.</del> <a href=
+""><ins class=
+"diff-chg">R48.</ins> Digital Signatures</a> : this specification
+relies on <a href="#xmldsig11">[XMLDSIG11]</a> and <a href=
+"#rfc5280">[RFC5280]</a> to address this requirement.</li>
+<li><del class="diff-old">R45.</del> <a href=
+<ins class="diff-chg">R49.</ins> Multiple Signatures and
+Certificate Chains</a> : this specification relies on <a href=
+"#xmldsig11">[XMLDSIG11]</a> and <a href="#rfc5280">[RFC5280]</a>
+to address this requirement.</li>
+<li><del class="diff-old">R46.</del> <a href=
+""><ins class="diff-chg">
+R50.</ins> Signature Document Format</a> : see signature file.</li>
+<li><a href=
+<del class="diff-old">R47.</del> <ins class="diff-chg">R51.</ins>
+Support for Multiple Message Digest Algorithms</a> : this
+specification supports SHA-256, the <code>reference</code> element,
+and <code>ds:SignedInfo</code> element.</li>
+<li><del class="diff-old">R48.</del> <a href=
+<ins class="diff-chg">R52.</ins> Support for Multiple Signature
+Algorithms</a> : DSA-SHA-1, RSA-SHA-1, DSA-SHA-256 and
+<li><del class="diff-old">R49.</del> <a href=
+""><ins class=
+"diff-chg">R53.</ins> Key Lengths</a> : minimum of 1024, but 2048
+<li><del class="diff-old">R50.</del> <a href=
+""><ins class="diff-chg">
+R54.</ins> Key Usage Extension</a> : part of X.509v3.</li>
+<li><del class="diff-old">R51.</del> <a href=
+<ins class="diff-chg">R55.</ins> Inclusion of Revocation
+Information</a> : this specification relies on <a href=
+"#xmldsig11">[XMLDSIG11]</a> and <a href="#rfc5280">[RFC5280]</a>
+to address this requirement.</li>
+<p>In particular, this specification explicitly supports both
+<a href="#author-signature" title="author signature">author
+<del class="diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> and
+<a href="#distributor-signature" title=
+"distributor signature">distributor <del class="diff-old">signature
+s.</del> <ins class="diff-chg">signatures</ins></a> .</p>
+<h2 id="conformance"><span class="secno">3</span> Conformance</h2>
+<p>The key words <em class="ct">MUST</em> , <em class="ct">MUST
+NOT</em> , <em class="ct">REQUIRED</em> , <em class=
+"ct">SHOULD</em> , <em class="ct">SHOULD NOT</em> , <em class=
+"ct">RECOMMENDED</em> , <em class="ct">MAY</em> and <em class=
+"ct">OPTIONAL</em> in this specification are to be interpreted as
+described in <a href="#rfc2119">[RFC2119]</a> .</p>
+<p>As well as sections marked as non-normative, the examples and
+notes, and security considerations in this specification are
+non-normative. Everything else in this specification is
+<p>There are two classes of product that can claim conformance to
+this specification:</p>
+<li>A <a href="#signature-file">signature file</a> .</li>
+<li>A <a href="#user-agent">user agent</a> .</li>
+<p>Products that generate a <a href="#widget-signature">widget
+signature</a> <em class="ct">MUST</em> generate <a href=
+"#xml">[XML]</a> documents that conform to <a href=
+"#xmldsig11">[XMLDSIG11]</a> and conform to this specification.</p>
+<p>A <dfn id="user-agent">user agent</dfn> is an implementation
+that attempts to support this specification. A user agent
+<em class="ct">MUST</em> behave as described by this specification
+in order to claim conformance.</p>
+<p>Implementers are encouraged to provide mechanisms to enable
+end-users to install certificates for enabling verification of
+digital signatures within the widget package.</p>
+<h2 id="locating-signatures"><span class="secno">4</span> Locating
+and Processing Digital Signatures for the Widget</h2>
+<p>This section defines how to locate signature files in a widget
+package for processing. An implementation <em class="ct">MUST</em>
+achieve the same result as the following algorithm used to locate
+signature files in a <a href="#widget-package">widget package</a>
+<p>Let <code>signatures</code> be an empty list.</p>
+<p>For each <a href="#file-entry">file entry</a> in the <a href=
+"#root-of-the-widget-package">root of the widget package</a> , if
+the <a href="#file-name">file name</a> matches the <a href=
+"#naming-convention-for-a-distributor-sign1">naming convention for
+a distributor signature</a> then append this <a href=
+"#file-entry">file entry</a> to the <code>signatures</code> list.
+An Implementation <em class="ct">MUST</em> perform a case-sensitive
+<p>If the <code>signatures</code> list is not empty, sort the list
+of <code>signatures</code> by the file name field in ascending
+numerical order (e.g. <code>signature1.xml</code> followed by
+<code>signature2.xml</code> followed by <code>signature3.xml</code>
+<p>Search the <a href="#root-of-the-widget-package">root of the
+widget package</a> for any <a href="#file-name">file name</a> that
+matches the <a href=
+"#naming-convention-for-an-author-signatur0">naming convention for
+an author signature</a> and then append this <a href=
+"#file-entry">file entry</a> to the <code>signatures</code> list.
+An Implementation <em class="ct">MUST</em> perform a case-sensitive
+<p>If the <code>signatures</code> list is empty (meaning no
+<a href="#signature-file" title="signature file">signature
+<del class="diff-old">file</del> <ins class=
+"diff-chg">files</ins></a> <del class="diff-old">s</del> were
+found), terminate this algorithm and treat this widget package as
+an <a href="#unsigned-widget-package">unsigned widget package</a>
+<p>Validate the signature files in the signature list in numerical
+descending order, with <a href="#distributor-signature" title=
+"distributor signature">distributor <del class=
+"diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> first
+(if any).</p>
+<p>The decision of which (if any) <a href="#distributor-signature"
+title="distributor signature">distributor <del class=
+"diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> are
+to be validated and whether the <a href="#author-signature">author
+signature</a> is validated is out of scope of this specification.
+This <em class="ct">MAY</em> be determined by the security policy
+used by the user agent.</p>
+<p><dfn id="numerical-order">Numerical order</dfn> is the order
+based on the numeric portion of the signature file name. Thus in
+the case more than one distributor signature is to be processed,
+the highest numbered distributor signature is processed first.</p>
+<p>Ordering of widget <a href="#signature-file" title=
+"signature file">signature <del class="diff-old">file</del>
+<ins class="diff-chg">files</ins></a> <del class="diff-old">s</del>
+by the numeric portion of the <a href="#file-name">file name</a>
+can be used to allow consistent processing and possible
+<p>Every signature that is verified <em class="ct">MUST</em> be
+verified according to <a href="#signature-verification">Signature
+Verification</a> defined in this specification.</p>
+<h2 id="use-and-syntax"><span class="secno">5</span> Signature
+Syntax and use in Widget Packages</h2>
+<h3 id="use"><span class="secno">5.1</span> Use of XML Signature in
+<p>A <a href="#widget-package">widget package</a> <em class=
+"ct">MAY</em> be digitally signed using the profile of <a href=
+"#xmldsig11">[XMLDSIG11]</a> defined by this specification.</p>
+<p class="note">Note: A user agent's security policy can affect how
+signature validation impacts operation, and may have additional
+constraints on establishing trust, including additional
+requirements on certificate chain validation and certificate
+revocation processing using CRLs <a href="#rfc5280">[RFC5280]</a>
+or OCSP <a href="#rfc2560">[RFC2560]</a> .</p>
+<p class="note">Security policy may also require additional
+information to be conveyed in <code>ds:KeyInfo</code> . Security
+policy is out of scope of this specification but has important
+implications for signature file processing.</p>
+<p>When a <a href="#widget-package">widget package</a> is signed
+according to this specification, the following <dfn id=
+"requirements-on-a-widget-signature">requirements on a widget
+signature</dfn> apply to any <a href="#widget-signature">widget
+signature</a> included in <a href="#widget-package">widget
+package</a> :</p>
+<p>Each <a href="#signature-file">signature file</a> <em class=
+"ct">MUST</em> appear at the <a href=
+"#root-of-the-widget-package">root of the widget package</a> .</p>
+<p>Each <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> be a detached XML Signature that complies with XML
+Signature 1.1 syntax <a href="#xmldsig11">[XMLDSIG11]</a> .</p>
+<p>Each <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> be generated and validated in a manner compliant
+with XML Signature 1.1 processing rules <a href=
+"#xmldsig11">[XMLDSIG11]</a> .</p>
+<p>Each <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> contain a <code>dsp:Profile</code> signature
+properties element compliant with the <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> and this
+specification. This <code>dsp:Profile</code> property <em class=
+"ct">MUST</em> have the <code><a href="#uri">URI</a></code>
+attribute value of
+<code></code> .</p>
+<p>Each <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> contain a <code>dsp:Role</code> signature properties
+element compliant with the <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> and this
+<p>Each <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> contain a <code>dsp:Identifier</code> signature
+properties element compliant with XML Signature Properties <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> and this
+<p>Every <code>ds:Reference</code> used within a <a href=
+"#widget-signature">widget signature</a> <em class="ct">MUST</em>
+have a <code><a href="#uri">URI</a></code> attribute.</p>
+<p>Every <code>ds:Reference</code> used within a <a href=
+"#widget-signature">widget signature</a> <em class="ct">MUST</em>
+be one of the following two kinds of reference:</p>
+<dt>Reference to content within the same <code>ds:Signature</code>
+<p>Every <code>ds:Reference</code> to an item within the <a href=
+"#widget-signature">widget signature</a> <em class="ct">MUST</em>
+use an <code>IDREF</code> value for the <code>ds:Reference</code>
+<code><a href="#uri">URI</a></code> attribute, referring to a
+unique ID (as defined in <a href=
+"#xml-schema-datatypes">[XML-Schema-Datatypes]</a> ) within the
+<a href="#widget-signature">widget signature</a> .</p>
+<dt>Reference to a <a href="#file-entry">file entry</a> in the same
+<a href="#widget-package">widget package</a></dt>
+<p>The URI attribute of every <code>ds:Reference</code> to a
+<a href="#file-entry">file entry</a> <em class="ct">MUST</em> be a
+URL-encoded <a href="#uri">[URI]</a> <a href=
+"#zip-relative-path">zip relative path</a> that identifies a file
+inside the widget package.</p>
+<h3 id="author-signatures"><span class="secno">5.2</span> Author
+<p>The <a href="#author-signature">author signature</a> can be used
+to determine:</p>
+<li>the author of a widget,</li>
+<li>that the integrity of the widget is as the author
+<li>and whether two widgets came from the same author.</li>
+<p>A <a href="#widget-package">widget package</a> <em class=
+"ct">MAY</em> contain zero or one <a href="#author-signature"
+title="author signature">author <del class="diff-old">signature
+s.</del> <ins class="diff-chg">signatures</ins></a> .</p>
+<p>In addition to the <a href=
+"#requirements-on-a-widget-signature">requirements on a widget
+signature</a> , the following <em class="ct">MUST</em> be true of
+an <a href="#author-signature">author signature</a> <del class=
+"diff-old">‘ s</del> <ins class="diff-chg">'s</ins> <a href=
+"#xmldsig-properties">[XMLDSIG-Properties]</a> <code>Role</code>
+<del class="diff-old">element ’s</del> <ins class=
+"diff-chg">element's</ins> <code><a href="#uri">URI</a></code>
+attribute value:</p>
+<dt class="label"><dfn id="author-role-attribute-value">Author
+<code>Role</code> Attribute value</dfn> ( <code><a href=
+"#uri">URI</a></code> ):</dt>
+<dt class="label">Meaning:</dt>
+<dd>This widget signature represents the digital signature of the
+author of the <a href="#widget-package">widget package</a> .</dd>
+<p>In addition, the <code>ds:Signature</code> <em class=
+"ct">MUST</em> have <code>ds:Reference</code> s for every <a href=
+"#file-entry">file entry</a> of the <a href=
+"#widget-package">widget package</a> other than any <a href=
+"#widget-signature">widget signature</a> .</p>
+<h4 id="naming-convention-for-an-author-signatur"><span class=
+"secno">5.2.1</span> Naming Convention for an Author Signature</h4>
+<p>The <code><a href=
+"#author-sig-filename">author-sig-filename</a></code> <a href=
+"#abnf">[ABNF]</a> rule defines the <dfn id=
+"naming-convention-for-an-author-signatur0">naming convention for
+an author signature</dfn> , as it applies to the <a href=
+"#signature-file-name">signature file name</a> of the <a href=
+"#author-signature">author signature</a> :</p>
+<dfn id="author-sig-filename">
+<p>The <code><a href=
+"#author-sig-filename">author-sig-filename</a></code> rule defines
+the lower-case (case-sensitive) string "
+<code>author-signature.xml</code> ".</p>
+<p>A file matching the <code><a href=
+"#author-sig-filename">author-sig-filename</a></code> <a href=
+"#abnf">[ABNF]</a> rule <em class="ct">MUST</em> contain a
+<code>dsp:Role</code> signature property having the URI for an
+Author role as defined in this specification or the signature
+<em class="ct">MUST</em> be flagged as being in error.</p>
+<h3 id="distributor-signatures"><span class="secno">5.3</span>
+Distributor Signatures</h3>
+<p>The <a href="#distributor-signature">distributor signature</a>
+can be used to determine:</p>
+<li>that a particular distributor has distributed this widget
+<li>and that the integrity of the <a href="#widget-package">widget
+package</a> is as the distributor intended.</li>
+<p>A <a href="#widget-package">widget package</a> <em class=
+"ct">MAY</em> contain zero, one, or more <a href=
+"#distributor-signature" title="distributor signature">distributor
+<del class="diff-old">signature s.</del> <ins class=
+"diff-chg">signatures</ins></a> .</p>
+<p>In addition to the <a href=
+"#requirements-on-a-widget-signature">requirements on a widget
+signature</a> , the following <em class="ct">MUST</em> be true of
+an <a href="#distributor-signature">distributor signature</a>
+<del class="diff-old">‘ s</del> <ins class="diff-chg">'s</ins>
+<a href="#xmldsig-properties">[XMLDSIG-Properties]</a>
+<code>Role</code> <del class="diff-old">element ’s</del>
+<ins class="diff-chg">element's</ins> <code><a href=
+"#uri">URI</a></code> attribute value:</p>
+<dt class="label"><dfn id=
+"distributor-role-attribute-value">Distributor <code>Role</code>
+Attribute value</dfn> ( <code><a href="#uri">URI</a></code> ):</dt>
+<dt class="label">Meaning:</dt>
+<dd>This widget signature represents the digital signature of a
+distributor of the <a href="#widget-package">widget package</a>
+<p>In addition, the <code>ds:Signature</code> <em class=
+"ct">MUST</em> include <code>ds:Reference</code> s for every
+<a href="#file-entry">file entry</a> of the <a href=
+"#widget-package">widget package</a> , including any <a href=
+"#author-signature">author signature</a> , but excluding any
+<a href="#distributor-signature" title=
+"distributor signature">distributor <del class="diff-old">signature
+s.</del> <ins class="diff-chg">signatures</ins></a> . In other
+words, <em class="ct"><a href="#distributor-signature">distributor
+signature</a></em> s <em class="ct">MUST</em> countersign <a href=
+"#author-signature" title="author signature">author <del class=
+"diff-old">signature s,</del> <ins class=
+"diff-chg">signatures</ins></a> , but <em class="ct">MUST NOT</em>
+countersign other <a href="#distributor-signature" title=
+"distributor signature">distributor <del class="diff-old">signature
+s.</del> <ins class="diff-chg">signatures</ins></a> .</p>
+<h4 id="naming-convention-for-a-distributor-sign"><span class=
+"secno">5.3.1</span> <dfn id=
+"naming-convention-for-a-distributor-sign0">Naming Convention for a
+Distributor Signature</dfn></h4>
+<p>Each <a href="#distributor-signature">distributor signature</a>
+<em class="ct">MUST</em> have a <a href="#file-name">file name</a>
+consisting of the lower-case string " <code>signature</code> "
+followed by a digit in the range 1-9 inclusive, followed by zero or
+more digits in the range 0-9 inclusive and then the lower-case
+string " <code title="">.xml</code> ".</p>
+<p>The <code><a href=
+"#dist-sig-filename">dist-sig-filename</a></code> <a href=
+"#abnf">[ABNF]</a> rule formally defines the <dfn id=
+"naming-convention-for-a-distributor-sign1">naming convention for a
+distributor signature</dfn> , as it applies to the <a href=
+"#signature-file-name">signature file name</a> of a <a href=
+"#distributor-signature">distributor signature</a> :</p>
+<code><dfn id=
+"dist-sig-filename">dist-sig-filename</dfn> = signature-string non-zero-digit
+ *DIGIT xml-suffix-string
+signature-string = %x73.69.67.6e.
+non-zero-digit = %x31-39
+<p>The <code>signature-string</code> rule defines the lower-case
+(case-sensitive) string " <code>signature</code> ".</p>
+<p>The <code>non-zero-digit</code> rule defines a digit in the
+range <code>1-9</code> .</p>
+<p><code>DIGIT</code> is defined in <a href="#abnf">[ABNF]</a> as a
+digit in the range <code>0-9</code> .</p>
+<p>The <code>xml-suffix-string</code> rule defines the lower-case
+(case-sensitive) string " <code title="">.xml</code> ".</p>
+<p class="example">An example is "signature20.xml".</p>
+<p>Leading zeros are disallowed in the numbers.</p>
+<p>A <a href="#file-entry">file entry</a> whose <a href=
+"#file-name">file name</a> does not match the above ABNF <em class=
+"ct">MUST</em> be ignored, meaning that an implementation
+<em class="ct">MUST NOT</em> treat the file entry as a <a href=
+"#signature-file">signature file</a> .</p>
+<p class="example">For example, a file with the <a href=
+"#file-name">file name</a> " <code>signature01.xml</code> " will be
+<p>It is <em class="ct">OPTIONAL</em> that the <a href=
+"#signature-file-name">signature file name</a> s of <a href=
+"#distributor-signature" title="distributor signature">distributor
+<del class="diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> form
+a contiguous set of numeric values.</p>
+<p>Within a widget package these signature files <em class=
+"ct">MUST</em> be ordered based on the numeric portion of the
+signature file name.</p>
+<p class="example">Thus, for example, <code>signature2.xml</code>
+precedes <code>signature11.xml</code> .</p>
+<p>A file matching the <code><a href=
+"#dist-sig-filename">dist-sig-filename</a></code> <a href=
+"#abnf">[ABNF]</a> rule <em class="ct">MUST</em> contain a
+<code>dsp:Role</code> signature property having the URI for a
+Distributor role as defined in this specification or the signature
+<em class="ct">MUST</em> be flagged as being in error.</p>
+<h3 id="x.509-data"><span class="secno">5.4</span> X.509 Data</h3>
+<p>Every widget signature <em class="ct">MAY</em> have additional
+information contained in the signature <code>ds:X509Data</code>
+element as specified by the <a href="#xmldsig11">[XMLDSIG11]</a>
+specification. This <em class="ct">MAY</em> include X.509
+certificates, and/or CRL and/or OCSP response information that, if
+included, <em class="ct">MUST</em> be conveyed according to the
+<a href="#xmldsig11">[XMLDSIG11]</a> specification.</p>
+<p>The X.509 certificate format <em class="ct">MUST</em> be
+supported when certificates are used in the
+<code>ds:X509Data</code> . This is the <dfn id=
+"mandatory-certificate-format">mandatory certificate format</dfn> .
+The <em class="ct">RECOMMENDED</em> version of the certificate
+format is X.509 version 3 as specified in <a href=
+"#rfc5280">[RFC5280]</a> . Implementations <em class="ct">MUST</em>
+be prepared to accept X.509 v3 certificates <a href=
+"#rfc5280">[RFC5280]</a> .</p>
+<p class="note">Note: v3 certificates are necessary to use the v3
+extension to express the basic constraints on a certificate. This
+allows CA certificates to be distinguished from end entity
+certificates, enabling more robust trust verification.</p>
+<h3 id="identifier-signature-property"><span class=
+"secno">5.5</span> <code>Identifier</code> Signature Property</h3>
+<p>The signer uses the <code>dsp:Identifier</code> signature
+property to uniquely identify the signature to enable signature
+management. It <em class="ct">MUST</em> be unique for a given
+signer. Signing parties are expected to ensure that the
+<code>dsp:Identifier</code> signature property value is unique for
+the widget packages that they sign.</p>
+<h2 id="algorithms"><span class="secno">6</span> Algorithms</h2>
+<p>Definitions of the algorithm URI identifiers specified in
+<a href="#xmldsig11">[XMLDSIG11]</a> take precedence if there is
+any difference in this document. Rules specified in <a href=
+"#xmldsig11">[XMLDSIG11]</a> regarding use of these algorithms
+<em class="ct">MUST</em> be followed. Note that use of optional
+algorithms may result in signatures that are not interoperable with
+implementations that do not support these algorithms. Authors are
+cautioned to take this into consideration.</p>
+<h3 id="signature-algorithms"><span class="secno">6.1</span>
+Signature Algorithms</h3>
+<p>The following <dfn id="signature-algorithms0">signature
+algorithms</dfn> <em class="ct">MUST</em> be supported:</p>
+<dd><em class="ct">REQUIRED</em> for signature verification,
+<em class="ct">OPTIONAL</em> for generation</dd>
+<p>The following <dfn id="signature-algorithms1">signature
+algorithms</dfn> <em class="ct">SHOULD</em> be supported:</p>
+<dd><del class="diff-old">Note that this</del><br />
+<ins class="diff-chg">This</ins> is ECDSA over the P-256 prime
+curve specified in Section D.2.3 of FIPS 186-3 <a href=
+"#fips186-3">[FIPS186-3]</a> (and using the SHA-256 hash
+<p class="note"><ins class="diff-new">Note:</ins> Although all
+implementations may not support this optional algorithm,
+implementation is encouraged since it may become mandatory in a
+subsequent release of this specification. This may also be
+necessary if any security issues are discovered with the currently
+required algorithm.</p>
+<p>A user agent <em class="ct">MAY</em> support additional
+signature algorithms.</p>
+<p>The <em class="ct">RECOMMENDED</em> key length ( <dfn id=
+"recommended-key-length">recommended key length</dfn> ) of the key
+used to generate the signature is 2048 bits. The key length of the
+key used to generate the signature <em class="ct">MUST NOT</em> be
+less than 1024 bits. The signer <em class="ct">MUST NOT</em>
+generate signatures using key lengths of less than 2048 bits unless
+the life time of the signature is less than one year.</p>
+<h3 id="digest-algorithms"><span class="secno">6.2</span> Digest
+<p>The following <dfn id="digest-algorithms0">digest
+algorithms</dfn> <em class="ct">MUST</em> be supported:</p>
+<p><em class="ct">REQUIRED</em> : SHA-256<br />
+<p>A user agent <em class="ct">MAY</em> support additional digest
+<h3 id="canonicalization-algorithms"><span class="secno">6.3</span>
+Canonicalization Algorithms</h3>
+<p>The following <dfn id=
+"canonicalization-algorithms0">canonicalization algorithms</dfn>
+<em class="ct">MUST</em> be supported:</p>
+<p><em class="ct">REQUIRED</em> : <del class=
+"diff-old">Canonical</del> <ins class="diff-chg">Exclusive</ins>
+XML <del class="diff-old">1.1</del> <ins class=
+"diff-chg">Canonicalization 1.0</ins> (omits comments) <a href=
+"#xml-exc-c14n"><ins class=
+"diff-new">[XML-exc-C14N]</ins></a><br />
+<code><del class=
+"diff-old"></del> <ins class=
+<p>A user agent <em class="ct">MAY</em> support additional XML
+canonicalization methods.</p>
+<h2 id="processing-rules"><span class="secno">7</span> Processing
+<h3 id="common-constraints"><span class="secno">7.1</span> Common
+Constraints for Signature Generation and Validation</h3>
+<p>The following constraints apply to both <a href=
+"#signature-generation">Signature Generation</a> and <a href=
+"#signature-verification">Signature Verification</a> . These
+constraints <em class="ct">MUST</em> be observed when generating a
+<a href="#widget-signature">widget signature</a> and <em class=
+"ct">MUST</em> be verified as met when validating a <a href=
+"#widget-signature">widget signature</a> .</p>
+<p>A <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> have a <code>ds:Reference</code> for every <a href=
+"#file-entry">file entry</a> that is not a <a href=
+"#widget-signature">widget signature</a> .</p>
+<p>A <a href="#distributor-signature">distributor signature</a>
+<em class="ct">MUST</em> have a <code>ds:Reference</code> for any
+<a href="#author-signature">author signature</a> , if one is
+present within the <a href="#widget-package">widget package</a>
+<p>For each <code>ds:Reference</code> element:</p>
+<ol style="list-style-type:lower-alpha">
+<p>The <code><a href="#uri">URI</a></code> attribute <em class=
+"ct">MUST</em> be a <a href="#zip-relative-path">zip relative
+path</a> from the <a href="#root-of-the-widget-package">root of the
+widget package</a> to the <a href="#file-entry">file entry</a>
+being referenced.</p>
+<p>The <code>Algorithm</code> attribute of the
+<code>ds:digestMethod</code> <em class="ct">MUST</em> be one of the
+<a href="#digest-algorithms0">digest algorithms</a> .</p>
+<p>The <code>ds:Reference</code> <em class="ct">MUST NOT</em> have
+any <code>ds:Transform</code> elements.</p>
+<p>Every Signature Property required by this specification
+<em class="ct">MUST</em> be incorporated into the signature as
+<ol style="list-style-type:lower-alpha">
+<p>A <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> include a <code>ds:Object</code> element within the
+<code>ds:Signature</code> element. This <code>ds:Object</code>
+element <em class="ct">MUST</em> have an <code>Id</code> attribute
+that is referenced by a <code>ds:Reference</code> element within
+the signature <code>ds:SignedInfo</code> element.</p>
+<p>This <code>ds:Object</code> element <em class="ct">MUST</em>
+contain a single <code>ds:SignatureProperties</code> element that
+<em class="ct">MUST</em> contain a different
+<code>ds:SignatureProperty</code> element for each property
+required by this specification.</p>
+<p>Each <code>ds:Signature</code> property required by this
+specification <em class="ct">MUST</em> meet the syntax requirements
+of <a href="#xmldsig-properties">[XMLDSIG-Properties]</a> .</p>
+<p>The <code>ds:Signature</code> <em class="ct">MUST</em> meet the
+following requirements:</p>
+<ol style="list-style-type:lower-alpha">
+<p>The <code>Algorithm</code> attribute of the
+<code>ds:CanonicalizationMethod</code> element <em class=
+"ct">MUST</em> be one of the <a href=
+"#canonicalization-algorithms0">canonicalization algorithms</a>
+<p>The <code>ds:SignatureMethod</code> algorithm used in the
+<code>ds:SignatureValue</code> element <em class="ct">MUST</em> be
+one of the <a href="#signature-algorithms1">signature
+algorithms</a> . The <code>ds:Signature</code> <em class=
+"ct">MUST</em> be produced using a key of the <a href=
+"#recommended-key-length">recommended key length</a> or stronger
+(meaning larger than 2048 bits).</p>
+<p>The <code>ds:KeyInfo</code> element <em class="ct">MAY</em> be
+included and <em class="ct">MAY</em> include certificate, CRL
+and/or OCSP information. If so, it <em class="ct">MUST</em> be
+compliant with the <a href="#xmldsig11">[XMLDSIG11]</a>
+specification. If certificates are used, they <em class=
+"ct">MUST</em> conform to the <a href=
+"#mandatory-certificate-format">mandatory certificate format</a>
+<p>The <code>ds:SignedInfo</code> element <em class="ct">MUST</em>
+include all the <code>ds:Reference</code> elements listed in items
+1, 2 and 4 of this section.</p>
+<p>The <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> be serialized as a <a href="#utf-8">[UTF-8]</a>
+encoded <a href="#xml">[XML]</a> document and be named using the
+appropriate naming convention: either the <a href=
+"#naming-convention-for-a-distributor-sign1">naming convention for
+a distributor signature</a> or the <a href=
+"#naming-convention-for-an-author-signatur0">naming convention for
+an author signature</a> .</p>
+<h3 id="signature-generation"><span class="secno">7.2</span>
+Signature Generation</h3>
+<p>A <a href="#widget-signature">widget signature</a> <em class=
+"ct">MUST</em> be generated according to the Core Generation rules
+specified in <a href="#xmldsig11">[XMLDSIG11]</a> , including rules
+on Reference Generation and Signature Generation.</p>
+<p>The <a href="#common-constraints">Common Constraints for
+Signature Generation and Validation</a> <em class="ct">MUST</em> be
+met on signature generation.</p>
+<p>A unique identifier string for the signature <em class=
+"ct">MUST</em> be placed in the <code>dsp:Identifier</code>
+signature property by the signer. This <em class="ct">MUST</em> be
+a unique signing string for all <a href="#widget-signature" title=
+"widget signature">widget <del class="diff-old">signature</del>
+<ins class="diff-chg">signatures</ins></a> <del class=
+"diff-old">s</del> created by the signer. Signing parties are
+expected to ensure that the <code>dsp:Identifier</code> signature
+property value is unique for the widgets that they sign.</p>
+<h3 id="signature-verification"><span class="secno">7.3</span>
+Signature Verification</h3>
+<p>A widget signature <em class="ct">MUST</em> be validated
+according to Core Validation, as defined in XML Signature <a href=
+"#xmldsig11">[XMLDSIG11]</a> , including Reference Validation and
+Signature Validation.</p>
+<p>The <a href="#common-constraints">Common Constraints for
+Signature Generation and Validation</a> <em class="ct">MUST</em> be
+met on signature validation.</p>
+<p>If a <code>ds:KeyInfo</code> element is present, then it
+<em class="ct">MUST</em> conform to the <a href=
+"#xmldsig11">[XMLDSIG11]</a> specification. If present, the user
+agent <em class="ct">MUST</em> perform Basic Path Validation
+<a href="#rfc5280">[RFC5280]</a> on the signing key and <em class=
+"ct">SHOULD</em> perform revocation checking as appropriate.</p>
+<p>If <a href="#widget-signature">widget signature</a> validation
+is successful any external entities (e.g., a user agent that
+implements <a href="#widgets-packaging">[Widgets Packaging]</a>
+relying on the validation of the widget signature <em class=
+"ct">MUST</em> be notified of the success.</p>
+<p>If <a href="#widget-signature">widget signature</a> validation
+fails for any reason, any external entities (e.g., a user agent
+that implements <a href="#widgets-packaging">[Widgets
+Packaging]</a> ) relying on the validation of the widget signature
+<em class="ct">MUST</em> be notified of the failure. This
+specification does not define the means or format of a failure
+notification, which is left up to implementers. The reason for
+validation failure <em class="ct">MAY</em> be returned by the
+implementation to an external entity, including reasons related to
+Reference validation, Signature validation, Signature Property
+validation and/or certificate and CRL/OCSP verification.</p>
+<h2 id="security-considerations"><span class="secno">8</span>
+Security Considerations</h2>
+<p><em>This section is non-normative.</em></p>
+<p>The signature scheme described in this document deals with the
+content present inside a compressed widget package. This implies
+that, in order to verify a widget signature, implementations need
+to decompress a data stream that can come from an arbitrary source.
+A signature according to this specification does <em>not</em> limit
+the attack surface of decompression and unpacking code used during
+signature extraction and verification.</p>
+<p>Care should be taken to avoid resource exhaustion attacks
+through maliciously crafted widget packages during signature
+<p>Implementations should be careful about trusting path components
+found in the widget package. Such path components might be
+interpreted by operating systems as pointing at security critical
+files outside the widget environment proper, and naive unpacking of
+widget packages into the file system might lead to undesirable and
+security relevant effects, such as overwriting of startup or system
+<p>There is no single <a href="#signature-file">signature file</a>
+that includes all files of a widget package, including all of the
+signature files. This leaves a <a href="#widget-package">widget
+package</a> subject to an attack where <a href=
+"#distributor-signature" title="distributor signature">distributor
+<del class="diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> can
+be removed or added. An <a href="#author-signature">author
+signature</a> could also be attacked by removing it and any
+<a href="#distributor-signature" title=
+"distributor signature">distributor <del class=
+"diff-old">signature</del> <ins class=
+"diff-chg">signatures</ins></a> <del class="diff-old">s</del> if
+they are present. A signature file may also be renamed, which can
+affect the order in which distributor signatures are processed.</p>
+<p>Mechanisms to install new root certificates in a user agent
+should be subject to security critical mechanisms. End-users should
+be made aware of what they are doing and why when installing a new
+root certificate.</p>
+<h2 class="no-num" id="acknowledgements">Acknowledgements</h2>
+<p>The Web Applications working group would like to thank members
+of the W3C XML Security working group for their comments and
+suggestions, as well as all reviewers of earlier drafts of this
+<h2 class="no-num" id="references">References</h2>
+<dl class="bibliography">
+<dt><dfn id="abnf">[ABNF]</dfn></dt>
+<dd>RFC 5234, <a href=
+""><cite>Augmented BNF for
+Syntax Specifications: <abbr title=
+"Augmented Backus-Naur Form">ABNF</abbr></cite> <del class=
+"diff-old">.</del></a> , D. Crocker and P. Overell. January 2008.
+<dt><dfn id="c14n11">[C14N11]</dfn></dt>
+<dd><a href=
+"">Canonical XML
+Version 1.1 <del class="diff-old">. W3C Recommendation.</del></a> ,
+J. Boyer, M. Marcy. 2 May <del class="diff-old">2008.</del>
+<ins class="diff-chg">2008, W3C Recommendation.</ins>
+<dt><dfn id="fips186-3">[FIPS186-3]</dfn></dt>
+<dd><a href=
+DRAFT FIPS PUB 186-3</a> . <em>Digital Signature Standard
+(DSS).</em> U.S. Department of Commerce/National Institute of
+Standards and Technology.<br />
+<dt><dfn id="rfc2119">[RFC2119]</dfn></dt>
+<dd><cite><a href="">Key words for
+use in RFCs to Indicate Requirement Levels</a></cite> , S. Bradner.
+IETF, March 1997. <ins class=
+<dt><dfn id="rfc2560">[RFC2560]</dfn></dt>
+<dd><cite><a href="">X.509
+Public Key Infrastructure Online Certificate Status Protocol -
+OCSP</a></cite> , M. Myers, R. Ankney, A. Malpani, S. Galperin, C.
+Adams; June 1999.</dd>
+<dt><dfn id="rfc5280">[RFC5280]</dfn></dt>
+<dd><cite><a href="">Internet
+X.509 Public Key Infrastructure Certificate and Certificate
+Revocation List (CRL) Profile</a></cite> , D. Cooper, S. Santesson,
+S. Farrell, S. Boeyen, R. Housley, W. Polk, May 2008.
+<dt><dfn id="utf-8">[UTF-8]</dfn></dt>
+<dd><a href="">RFC 2279
+<del class="diff-old">.</del></a> , <cite>UTF-8, a transformation
+format of ISO 10646</cite> . F. Yergeau. January 1998.
+<dt><dfn id="uri">[URI]</dfn></dt>
+<dd><cite><a href="">RFC 3986.
+Uniform Resource Identifiers (URI): Generic Syntax</a> <del class=
+"diff-old">.</del></cite> , T. Berners-Lee, R. Fielding, L.
+Masinter. January 2005.</dd>
+<dt><dfn id="widgets-packaging">[Widgets Packaging]</dfn></dt>
+<dd><cite><a href="">Widgets
+1.0: Packaging and Configuration</a></cite> , M. <del class=
+"diff-old">Caceres.</del> <ins class="diff-chg">Cáceres.</ins> W3C
+Working Draft <del class="diff-old">29 April</del> <ins class=
+"diff-chg">28 May</ins> 2009. This is an <del class=
+"diff-old">Editors</del> <ins class="diff-chg">Working</ins> Draft,
+a work in progress, and subject to change. <ins class=
+<dt><dfn id="widgets-requirements">[Widgets
+<dd><cite><a href=
+"">Widgets 1.0
+Requirements</a> <del class="diff-old">&lt;/</del></cite> ,
+<ins class="diff-chg">M. Cáceres. W3C Working Draft, 30 April 2009.
+<dt><dfn id="xml"><ins class="diff-chg">[XML]</ins></dfn></dt>
+<dd><cite><a href=""><ins class=
+"diff-chg">Extensible Markup Language (XML) 1.0 (Third
+Edition)</ins></a></cite> ,<ins class="diff-chg">T. Bray, J. Paoli,
+C. M. Sperberg-McQueen, E. Maler, F. Yergeau. W3C, February
+<dt><dfn id="xml-exc-c14n"><ins class=
+<dd><cite><a href=
+""><ins class=
+"diff-chg">Exclusive XML Canonicalization Version
+1.0</ins></a></cite> ,<ins class="diff-chg">J. Boyer, D. Eastlake
+3rd., J. Reagle. W3C Recommendation. 18 July 2002.
+<dt><dfn id="xml-namespaces"><ins class=
+<dd><cite><a href=
+""><ins class=
+"diff-chg">Namespaces in XML 1.0 (Second Edition)</ins></a></cite>
+,<ins class="diff-chg">T. Bray, D. Hollander, A. Layman, R. Tobin.
+W3C Recommendation, 16 August 2006.
+<dt><dfn id="xmldsig11"><ins class=
+<dd><cite><a href=
+""><ins class=
+"diff-chg">XML Signature Syntax and Processing, Version
+1.1</ins></a></cite> ,<ins class="diff-chg">D. Eastlake et al. W3C
+Working Draft, 26 February 2009.
+<dt><dfn id="xmldsig-2nded"><ins class=
+<dd><cite><a href=
+""><ins class=
+"diff-chg">XML Signature Syntax and Processing (Second
+Edition)</ins></a></cite> ,<ins class="diff-chg">D. Eastlake et al.
+W3C Recommendation, 10 June 2008.
+<dt><dfn id="xmlsecalgs"><ins class=
+<dd><cite><a href=
+""><ins class="diff-chg">
+XML Security Algorithm Cross-Reference</ins></a></cite>
+,<ins class="diff-chg">F. Hirsch, T. Roessler, K. Yiu, W3C Working
+Draft 26 February 2009.
+<dt><dfn id="xmldsig-properties"><ins class=
+<dd><cite><a href=
+""><ins class="diff-chg">
+XML Signature Properties</ins></a></cite> ,<ins class="diff-chg">F.
+Hirsch, W3C Working Draft 30 April 2009.
+<dt><dfn id="xml-schema-datatypes"><ins class=
+<dd><cite><a href=
+""><ins class=
+"diff-chg">XML Schema Part 2: Datatypes W3C
+Recommendation</ins></a></cite> ,<ins class="diff-chg">P. Biron, A.
+Malhotra. May 2001.
+<dt><dfn id="zip"><ins class="diff-chg">[ZIP]</ins></dfn></dt>
572 digsig/Overview.html
@@ -0,0 +1,572 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "">
+<html lang="en-US" xml:lang="en-US" xmlns="">
+<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+<title>XML Digital Signatures for Widgets</title>
+<style type="text/css">
+dfn {
+ font-weight: bold;
+.figure {
+ display: block;
+ counter-increment: fig-num;
+ text-align: center;
+ margin: 1em 0em 1em 0em;
+.figcaption {
+ clear:both;
+ display:block;
+.figcaption:before {
+ content: "Figure " counter(fig-num) ": ";
+ font-weight:bold;
+<link href="" rel="stylesheet" type="text/css" />
+ <div class="head"> <a href=""><img alt="W3C" height="48" src="" width="72" /></a>
+ <h1 class="head">XML Digital Signatures for Widgets</h1>
+ <h2 class="no-num no-toc" id="w3c-recommendation-30-march-2012">W3C Recommendation 30 March 2012 </h2>
+ <dl>
+ <dt>This version:</dt>
+ <dd><a href=""></a></dd>
+ <dt>Latest version:</dt>
+ <dd><a href=""></a></dd>
+ <dt>Previous version:</dt>
+ <dd><a href=""></a></dd>
+ <dt>Test Suite:</dt>
+ <dd><a href=""></a></dd>
+ <dt>Implementation Report: </dt>
+ <dd><a href=""></a></dd>
+ <dt>Editors:</dt>
+ <dd><a href="">Marcos Cáceres</a>, W3C Invited Expert</dd>
+ <dd>Paddy Byers, Aplix Corporation</dd>
+ <dd><a href="">Stuart Knightley</a>, Opera Software ASA</dd>
+ <dd>Frederick Hirsch, Nokia</dd>
+ <dd>Mark Priestley, Vodafone</dd>
+ </dl>
+ <p>Please refer to the <a href=""><strong>errata</strong></a> for this document, which may include some normative corrections.</p>
+ <p>See also <a href=""><strong>translations</strong></a>.</p>
+ <p class="copyright"><a href="">Copyright</a> © 2012 <a href=""><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href=""><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href=""><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="">Keio</a>), All Rights Reserved. W3C <a href="">liability</a>, <a href="">trademark</a> and <a href="">document use</a> rules apply.</p>
+ </div>
+ <hr />
+ <h2 class="no-num no-toc" id="abstract">Abstract</h2>
+ <p class="no-num no-toc">This document defines a profile of the <cite>XML
+ Signature Syntax and Processing</cite> specification to allow a widget package to be digitally signed. Authors and distributors can digitally sign a widget as a mechanism to
+ ensure continuity of authorship and distributorship. A user agent, or other validation system, can use a digital signature to verify the
+ data integrity of the files within a widget package and to
+ confirm the signing key(s). </p>
+ <h2 class="no-num no-toc" id="sotd">Status of this Document </h2>
+ <p><em>This section describes the status of this document at the time of its
+ publication. Other documents may supersede this document. A list of current W3C
+ publications and the latest revision of this technical report can be found in the <a href="">W3C technical reports index</a> at
+ <p>This is the 30 March 2012 W3C Recommendation of the <cite>XML Digital Signatures for Widgets</cite> specification.  </p>
+ <p>This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.</p>
+ <p>The public is encouraged
+ to send comments to the WebApps Working Group's public mailing list <a href=""></a> (<a href="">archive</a>). See <a href="">W3C mailing list and archive usage guidelines</a>. </p>
+ <p>This document is produced by the <a href="">Web
+ Applications WG</a>, part of the <a href="">Rich Web
+ Client Activity</a> in the W3C <a href="">Interaction
+ Domain</a>. It is expected that this document will progress along the W3C's
+ Recommendation track.</p>
+ <p>This document was produced by a group operating under the <a href="">5 February 2004 W3C Patent
+ Policy</a>. W3C maintains a <a href="" rel="disclosure">public list of any patent disclosures</a> made in connection with the
+ deliverables of the group; that page also includes instructions for disclosing a
+ patent. An individual who has actual knowledge of a patent which the individual
+ believes contains <a href="">Essential
+ Claim(s)</a> must disclose the information in accordance with <a href="">section 6 of the
+ W3C Patent Policy</a>.</p>
+ <h2 class="no-num no-toc" id="toc">Table of Contents</h2>
+ <!--begin-toc-->
+ <ol class="toc">
+ <li><a href="#introduction"><span class="secno">1 </span>Introduction</a>
+ <ol class="toc">
+ <li><a href="#requirements"><span class="secno">1.1 </span>Design goals and requirements</a></li>
+ </ol>
+ </li>
+ <li><a href="#conformance"><span class="secno">2 </span>Conformance</a></li>
+ <li><a href="#definitions"><span class="secno">3 </span>Definitions</a></li>
+ <li><a href="#versions-namespaces-and-identifiers"><span class="secno">4 </span>Versions, namespaces, and identifiers</a></li>
+ <li><a href="#algorithms"><span class="secno">5 </span>Algorithms, key lengths, and certificate formats</a>
+ <ol class="toc">
+ <li><a href="#x509note"><span class="secno">5.1 </span>Note about X.509 data</a></li>
+ </ol>
+ </li>
+ <li><a href="#author-signatures"><span class="secno">6 </span>Author signature</a>
+ <ol class="toc">
+ <li><a href="#naming-convention"><span class="secno">6.1 </span>Naming convention</a></li>
+ </ol>
+ </li>
+ <li><a href="#distributor-signatures"><span class="secno">7 </span>Distributor signatures</a>
+ <ol class="toc">
+ <li><a href="#naming-convention-0"><span class="secno">7.1 </span>Naming convention</a></li>
+ </ol>
+ </li>
+ <li><a href="#generating-a-digital-signature"><span class="secno">8 </span>Generating a digital signature </a>
+ <ol class="toc">
+ <li><a href="#example-of-a-generated-distributor-signature"><span class="secno">8.1 </span>Example of a generated distributor signature</a></li>
+ </ol>
+ </li>
+ <li><a href="#signature-verification"><span class="secno">9 </span>Validating digital signatures </a></li>
+ <li><a href="#locating-signature-files-in-a-widget-package"><span class="secno">10 </span>Locating signature files in a widget package </a></li>
+ <li><a href="#security-considerations"><span class="secno">11 </span>Security Considerations</a></li>
+ <li><a class="no-num" href="#acknowledgements">Acknowledgements</a></li>
+ <li><a class="no-num" href="#references">Normative References</a></li>
+ <li><a class="no-num" href="#references2">Informative References</a></li>
+ </ol>
+ <!--end-toc-->
+ <h2 id="introduction"><span class="secno">1 </span>Introduction</h2>
+ <p> A <a href="#widget-package">widget package</a> can be digitally signed by an <a href="#author">author</a> to produce a <a href="#signature-file">signature file</a> that cryptographically covers all of the files of a widget package that are not <a href="#signature-file" title="signature file">signature files</a> (e.g., HTML files, CSS files, and JavaScript files). In this specification, this kind of signature is referred to as an <a href="#author-signature">author signature</a>. </p>
+ <p>A user agent or other entity can use an <a href="#author-signature">author signature</a> to determine:</p>
+ <ul>
+ <li> which entity alleges to have authored the widget, </li>
+ <li>that the integrity of the
+ widget is as the <a href="#author">author</a> intended,</li>
+ <li>and whether a set of
+ widgets came from the same <a href="#author">author</a>.</li>
+ </ul>
+ <p>A <a href="#widget-package">widget package</a> can also be
+ signed by one or more <a href="#distributor" title="distributor">distributors</a> to produce a <a href="#signature-file">signature file</a> that cryptographically includes all non-signature files as well as any <a href="#author-signature">author
+ signature</a> (if one was included). In this specification, this kind of signature is referred to as a <a href="#distributor-signature">distributor signature</a>. To be clear,<a href="#distributor-signature" title="distributor signature">distributor signatures</a> countersign <a href="#author-signature" title="author signature">author signatures</a>, but do not countersign other <a href="#distributor-signature" title="distributor signature">distributor signatures</a>. Because of this, an author signature needs to be included in a <a href="#widget-package">widget package</a> before a <a href="#distributor-signature" title="distributor signature">distributor signature</a> or the <a href="#algorithm-to-validate-digital-signatures" title="algorithm to validate digital signatures">validation process</a> defined in this specification will fail. </p>
+ <p>A user agent or other entity can use a <a href="#distributor-signature" title="distributor signature">distributor signature</a> to determine:</p>
+ <ul>
+ <li> that a particular
+ distributor has distributed a widget package, </li>
+ <li> that the integrity of the <a href="#widget-package">widget package</a> is as the distributor intended,</li>
+ <li>and whether a set of
+ widgets came from the same <a href="#distributor">distributor</a>. </li>
+ </ul>
+ <p>The complete signing model is illustrated in <a href="#figure1">Figure 1</a>. </p>
+ <div class="figure" id="figure1"> <img alt="signature chain" height="291" src="images/digsigchain.png" width="692" />
+ <div class="figcaption">This figure shows which files are signed by each kind of signature, indicated by the dashed lines and arrows. <a href="#author-signature" title="author signature">Author signatures</a> sign all the non-signature files of the <a href="#widget-package">widget package</a> (e.g., images, sounds, HTML files, and CSS files). The <a href="#distributor-signature" title="distributor signature">distributor signatures</a> sign the <a href="#author-signature">author signature</a> and all other non-signature files in the package (but not other <a href="#distributor-signature" title="distributor signature">distributor signatures</a>). The model allows <a href="#distributor-signature" title="distributor signature">distributor signatures</a> to be removed without affecting the integrity of the <a href="#widget-package">widget package</a> as the author intended it. This also facilitates redistribution of <a href="#widget-package" title="widget package">widget packages</a> by either complete removal of all <a href="#signature-file" title="signature file">signature files</a> or substitutions of signatures. </div>
+ </div>
+ <h3 id="requirements"><span class="secno">1.1 </span>Design goals and requirements</h3>
+ <p>This document addresses the
+ following requirements from the <a href="#widgets-requirements">[Widgets
+ Requirements]</a> document: </p>
+ <ul>
+ <li>
+ <p><a href="">Digital Signatures</a>: this specification relies on <a href="#xmldsig">[XMLDSIG]</a> and <a href="#rfc5280">[RFC5280]</a> to address
+ this requirement.</p>
+ </li>
+ <li>