fcad-core-dragon 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +7 -7
- package/.gitlab-ci.yml +124 -0
- package/.prettierrc +11 -11
- package/.vscode/extensions.json +8 -8
- package/.vscode/settings.json +46 -16
- package/CHANGELOG +520 -520
- package/README.md +57 -57
- package/documentation/.vitepress/config.js +114 -114
- package/documentation/api-examples.md +49 -49
- package/documentation/composants/app-base-button.md +58 -58
- package/documentation/composants/app-base-error-display.md +59 -59
- package/documentation/composants/app-base-popover.md +68 -68
- package/documentation/composants/app-comp-audio.md +75 -75
- package/documentation/composants/app-comp-branch-buttons.md +111 -111
- package/documentation/composants/app-comp-button-progress.md +53 -53
- package/documentation/composants/app-comp-carousel.md +53 -53
- package/documentation/composants/app-comp-container.md +53 -53
- package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
- package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
- package/documentation/composants/app-comp-input-radio-next.md +39 -39
- package/documentation/composants/app-comp-input-text-next.md +35 -35
- package/documentation/composants/app-comp-input-text-table-next.md +34 -34
- package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
- package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
- package/documentation/composants/app-comp-jauge.md +31 -31
- package/documentation/composants/app-comp-menu-item.md +55 -55
- package/documentation/composants/app-comp-menu.md +29 -29
- package/documentation/composants/app-comp-navigation.md +41 -41
- package/documentation/composants/app-comp-note-call.md +53 -53
- package/documentation/composants/app-comp-note-credit.md +53 -53
- package/documentation/composants/app-comp-play-bar-next.md +53 -53
- package/documentation/composants/app-comp-pop-up-next.md +93 -93
- package/documentation/composants/app-comp-quiz-next.md +235 -235
- package/documentation/composants/app-comp-quiz-recall.md +53 -53
- package/documentation/composants/app-comp-svg-next.md +53 -53
- package/documentation/composants/app-comp-table-of-content.md +50 -50
- package/documentation/composants/app-comp-video-player.md +82 -82
- package/documentation/composants.md +46 -46
- package/documentation/composants_critiques/ModelPageComposant.md +53 -53
- package/documentation/composants_critiques/app-base-module.md +43 -43
- package/documentation/composants_critiques/app-base-page.md +48 -48
- package/documentation/composants_critiques/app-base.md +311 -311
- package/documentation/composants_critiques/main.md +15 -15
- package/documentation/demarrage.md +50 -50
- package/documentation/deploiement.md +57 -57
- package/documentation/index.md +33 -33
- package/documentation/markdown-examples.md +85 -85
- package/documentation/public/vite.svg +14 -14
- package/documentation/public/vuejs.svg +1 -1
- package/documentation/public/vuetify.svg +5 -5
- package/eslint.config.js +60 -60
- package/junit-report.xml +182 -0
- package/package.json +66 -59
- package/playwright/index.html +12 -0
- package/playwright/index.js +21 -0
- package/playwright-ct.config.js +95 -0
- package/src/$locales/en.json +157 -157
- package/src/$locales/fr.json +120 -120
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBase.vue +1171 -1169
- package/src/components/AppBaseButton.vue +90 -95
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBaseModule.vue +1639 -1634
- package/src/components/AppBasePage.vue +3 -2
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppBaseSkeleton.vue +66 -66
- package/src/components/AppCompAudio.vue +261 -256
- package/src/components/AppCompBranchButtons.vue +508 -508
- package/src/components/AppCompButtonProgress.vue +137 -132
- package/src/components/AppCompCarousel.vue +342 -336
- package/src/components/AppCompContainer.vue +29 -29
- package/src/components/AppCompInputCheckBoxNx.vue +325 -323
- package/src/components/AppCompInputDropdownNx.vue +302 -299
- package/src/components/AppCompInputRadioNx.vue +287 -284
- package/src/components/AppCompInputTextNx.vue +156 -153
- package/src/components/AppCompInputTextTableNx.vue +205 -202
- package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
- package/src/components/AppCompInputTextToFillNx.vue +316 -313
- package/src/components/AppCompJauge.vue +81 -81
- package/src/components/AppCompMenu.vue +6 -2
- package/src/components/AppCompMenuItem.vue +246 -240
- package/src/components/AppCompNavigation.vue +977 -972
- package/src/components/AppCompNoteCall.vue +167 -161
- package/src/components/AppCompNoteCredit.vue +496 -491
- package/src/components/AppCompPlayBarNext.vue +2290 -2288
- package/src/components/AppCompPopUpNext.vue +508 -504
- package/src/components/AppCompQuizNext.vue +515 -510
- package/src/components/AppCompQuizRecall.vue +355 -350
- package/src/components/AppCompSVGNext.vue +346 -346
- package/src/components/AppCompSettingsMenu.vue +177 -172
- package/src/components/AppCompTableOfContent.vue +433 -427
- package/src/components/AppCompVideoPlayer.vue +377 -377
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/components/BaseModule.vue +55 -55
- package/src/composables/useIdleDetector.js +56 -56
- package/src/composables/useQuiz.js +89 -89
- package/src/composables/useTimer.js +172 -172
- package/src/directives/nvdaFix.js +53 -53
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/main.js +493 -476
- package/src/module/stores/appStore.js +960 -947
- package/src/module/xapi/ADL.js +520 -520
- package/src/module/xapi/Crypto/Hasher.js +241 -241
- package/src/module/xapi/Crypto/WordArray.js +278 -278
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
- package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
- package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
- package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
- package/src/module/xapi/Crypto/encoders/Base.js +105 -105
- package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
- package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
- package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
- package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
- package/src/module/xapi/Crypto/index.js +53 -53
- package/src/module/xapi/Statement/activity.js +47 -47
- package/src/module/xapi/Statement/agent.js +55 -55
- package/src/module/xapi/Statement/group.js +26 -26
- package/src/module/xapi/Statement/index.js +259 -259
- package/src/module/xapi/Statement/statement.js +253 -253
- package/src/module/xapi/Statement/statementRef.js +23 -23
- package/src/module/xapi/Statement/substatement.js +22 -22
- package/src/module/xapi/Statement/verb.js +36 -36
- package/src/module/xapi/activitytypes.js +17 -17
- package/src/module/xapi/launch.js +157 -157
- package/src/module/xapi/utils.js +167 -167
- package/src/module/xapi/verbs.js +294 -294
- package/src/module/xapi/wrapper.js +1895 -1895
- package/src/module/xapi/xapiStatement.js +444 -444
- package/src/plugins/analytics.js +34 -34
- package/src/plugins/bus.js +12 -8
- package/src/plugins/gsap.js +17 -15
- package/src/plugins/helper.js +355 -358
- package/src/plugins/i18n.js +27 -26
- package/src/plugins/idb.js +227 -227
- package/src/plugins/save.js +37 -37
- package/src/plugins/scorm.js +287 -287
- package/src/plugins/xapi.js +11 -11
- package/src/public/index.html +33 -33
- package/src/router/index.js +57 -57
- package/src/router/routes.js +312 -312
- package/src/shared/generalfuncs.js +344 -344
- package/src/shared/validators.js +1018 -1018
- package/tests/component/AppBaseButton.spec.js +53 -0
- package/tests/component/pinia.spec.js +24 -0
- package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
- package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
- package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
- package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
- package/tests/unit/AppCompInputTextNx.spec.js +44 -0
- package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
- package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
- package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
- package/tests/unit/AppCompQuizNext.spec.js +114 -0
- package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
- package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
- package/vitest.config.js +28 -19
- package/vitest.setup.js +28 -0
- package/src/components/AppBaseButton.test.js +0 -21
|
@@ -1,241 +1,241 @@
|
|
|
1
|
-
import { Base } from './encoders/Base'
|
|
2
|
-
import { C_algo } from './algorithms/C_algo'
|
|
3
|
-
import { BufferedBlockAlgorithm } from './algorithms/BufferedBlockAlgorithm'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Abstract hasher template.
|
|
7
|
-
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
|
|
8
|
-
*/
|
|
9
|
-
export const Hasher = BufferedBlockAlgorithm.extend({
|
|
10
|
-
/**
|
|
11
|
-
* Configuration options.
|
|
12
|
-
*/
|
|
13
|
-
cfg: Base.extend(),
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Initializes a newly created hasher.
|
|
17
|
-
*
|
|
18
|
-
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
*
|
|
22
|
-
* var hasher = CryptoJS.algo.SHA256.create();
|
|
23
|
-
*/
|
|
24
|
-
init: function (cfg) {
|
|
25
|
-
// Apply config defaults
|
|
26
|
-
this.cfg = this.cfg.extend(cfg)
|
|
27
|
-
|
|
28
|
-
// Set initial values
|
|
29
|
-
this.reset()
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Resets this hasher to its initial state.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
*
|
|
37
|
-
* hasher.reset();
|
|
38
|
-
*/
|
|
39
|
-
reset: function () {
|
|
40
|
-
// Reset data buffer
|
|
41
|
-
BufferedBlockAlgorithm.reset.call(this)
|
|
42
|
-
|
|
43
|
-
// Perform concrete-hasher logic
|
|
44
|
-
this._doReset()
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Updates this hasher with a message.
|
|
49
|
-
*
|
|
50
|
-
* @param {WordArray|string} messageUpdate The message to append.
|
|
51
|
-
*
|
|
52
|
-
* @return {Hasher} This hasher.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
*
|
|
56
|
-
* hasher.update('message');
|
|
57
|
-
* hasher.update(wordArray);
|
|
58
|
-
*/
|
|
59
|
-
update: function (messageUpdate) {
|
|
60
|
-
// Append
|
|
61
|
-
this._append(messageUpdate)
|
|
62
|
-
|
|
63
|
-
// Update the hash
|
|
64
|
-
this._process()
|
|
65
|
-
|
|
66
|
-
// Chainable
|
|
67
|
-
return this
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Finalizes the hash computation.
|
|
72
|
-
* Note that the finalize operation is effectively a destructive, read-once operation.
|
|
73
|
-
*
|
|
74
|
-
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
75
|
-
*
|
|
76
|
-
* @return {WordArray} The hash.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
*
|
|
80
|
-
* var hash = hasher.finalize();
|
|
81
|
-
* var hash = hasher.finalize('message');
|
|
82
|
-
* var hash = hasher.finalize(wordArray);
|
|
83
|
-
*/
|
|
84
|
-
finalize: function (messageUpdate) {
|
|
85
|
-
// Final message update
|
|
86
|
-
if (messageUpdate) {
|
|
87
|
-
this._append(messageUpdate)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Perform concrete-hasher logic
|
|
91
|
-
var hash = this._doFinalize()
|
|
92
|
-
|
|
93
|
-
return hash
|
|
94
|
-
},
|
|
95
|
-
|
|
96
|
-
blockSize: 512 / 32,
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Creates a shortcut function to a hasher's object interface.
|
|
100
|
-
*
|
|
101
|
-
* @param {Hasher} hasher The hasher to create a helper for.
|
|
102
|
-
*
|
|
103
|
-
* @return {Function} The shortcut function.
|
|
104
|
-
*
|
|
105
|
-
* @static
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
*
|
|
109
|
-
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
|
110
|
-
*/
|
|
111
|
-
_createHelper: function (hasher) {
|
|
112
|
-
return function (message, cfg) {
|
|
113
|
-
return new hasher.init(cfg).finalize(message)
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Creates a shortcut function to the HMAC's object interface.
|
|
119
|
-
*
|
|
120
|
-
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
|
121
|
-
*
|
|
122
|
-
* @return {Function} The shortcut function.
|
|
123
|
-
*
|
|
124
|
-
* @static
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
*
|
|
128
|
-
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
|
129
|
-
*/
|
|
130
|
-
_createHmacHelper: function (hasher) {
|
|
131
|
-
return function (message, key) {
|
|
132
|
-
return new C_algo().HMAC.init(hasher, key).finalize(message)
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
// export const Hasher =BufferedBlockAlgorithm.extend({
|
|
138
|
-
// C_lib(this)
|
|
139
|
-
// return {
|
|
140
|
-
// /**
|
|
141
|
-
// * Configuration options.
|
|
142
|
-
// */
|
|
143
|
-
// cfg: Base.extend(),
|
|
144
|
-
// blockSize: 512 / 32,
|
|
145
|
-
// /**
|
|
146
|
-
// * Initializes a newly created hasher.
|
|
147
|
-
// * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
|
148
|
-
// * @example
|
|
149
|
-
// * var hasher = CryptoJS.algo.SHA256.create();
|
|
150
|
-
// */
|
|
151
|
-
// init: function(cfg) {
|
|
152
|
-
// // Apply config defaults
|
|
153
|
-
// this.cfg = this.cfg.extend(cfg)
|
|
154
|
-
|
|
155
|
-
// // Set initial values
|
|
156
|
-
// this.reset()
|
|
157
|
-
// },
|
|
158
|
-
|
|
159
|
-
// /**
|
|
160
|
-
// * Resets this hasher to its initial state.
|
|
161
|
-
// * @example
|
|
162
|
-
// * hasher.reset();
|
|
163
|
-
// */
|
|
164
|
-
// reset: function() {
|
|
165
|
-
// // Reset data buffer
|
|
166
|
-
// BufferedBlockAlgorithm.reset.call(this)
|
|
167
|
-
|
|
168
|
-
// // Perform concrete-hasher logic
|
|
169
|
-
// this._doReset()
|
|
170
|
-
// },
|
|
171
|
-
|
|
172
|
-
// /**
|
|
173
|
-
// * Updates this hasher with a message.
|
|
174
|
-
// * @param {WordArray|string} messageUpdate The message to append.
|
|
175
|
-
// * @return {Hasher} This hasher.
|
|
176
|
-
// * @example
|
|
177
|
-
// * hasher.update('message');
|
|
178
|
-
// * hasher.update(wordArray);
|
|
179
|
-
// */
|
|
180
|
-
// update: function(messageUpdate) {
|
|
181
|
-
// // Append
|
|
182
|
-
// this._append(messageUpdate)
|
|
183
|
-
|
|
184
|
-
// // Update the hash
|
|
185
|
-
// this._process()
|
|
186
|
-
|
|
187
|
-
// // Chainable
|
|
188
|
-
// return this
|
|
189
|
-
// },
|
|
190
|
-
|
|
191
|
-
// /**
|
|
192
|
-
// * Finalizes the hash computation.
|
|
193
|
-
// * Note that the finalize operation is effectively a destructive, read-once operation.
|
|
194
|
-
// * @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
195
|
-
// * @return {WordArray} The hash.
|
|
196
|
-
// * @example
|
|
197
|
-
// * var hash = hasher.finalize();
|
|
198
|
-
// * var hash = hasher.finalize('message');
|
|
199
|
-
// * var hash = hasher.finalize(wordArray);
|
|
200
|
-
// */
|
|
201
|
-
// finalize: function(messageUpdate) {
|
|
202
|
-
// // Final message update
|
|
203
|
-
// if (messageUpdate) {
|
|
204
|
-
// this._append(messageUpdate)
|
|
205
|
-
// }
|
|
206
|
-
|
|
207
|
-
// // Perform concrete-hasher logic
|
|
208
|
-
// var hash = this._doFinalize()
|
|
209
|
-
|
|
210
|
-
// return hash
|
|
211
|
-
// },
|
|
212
|
-
|
|
213
|
-
// /**
|
|
214
|
-
// * Creates a shortcut function to a hasher's object interface.
|
|
215
|
-
// * @param {Hasher} hasher The hasher to create a helper for.
|
|
216
|
-
// * @return {Function} The shortcut function.
|
|
217
|
-
// * @static
|
|
218
|
-
// * @example
|
|
219
|
-
// * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
|
220
|
-
// */
|
|
221
|
-
// _createHelper: function(hasher) {
|
|
222
|
-
// return function(message, cfg) {
|
|
223
|
-
// return new hasher.init(cfg).finalize(message)
|
|
224
|
-
// }
|
|
225
|
-
// },
|
|
226
|
-
|
|
227
|
-
// /**
|
|
228
|
-
// * Creates a shortcut function to the HMAC's object interface.
|
|
229
|
-
// * @param {Hasher} hasher The hasher to use in this HMAC helper.
|
|
230
|
-
// * @return {Function} The shortcut function.
|
|
231
|
-
// * @static
|
|
232
|
-
// * @example
|
|
233
|
-
// * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
|
234
|
-
// */
|
|
235
|
-
// _createHmacHelper: function(hasher) {
|
|
236
|
-
// return function(message, key) {
|
|
237
|
-
// return new C_lib.algo.HMAC.init(hasher, key).finalize(message)
|
|
238
|
-
// }
|
|
239
|
-
// }
|
|
240
|
-
// }
|
|
241
|
-
// })
|
|
1
|
+
import { Base } from './encoders/Base'
|
|
2
|
+
import { C_algo } from './algorithms/C_algo'
|
|
3
|
+
import { BufferedBlockAlgorithm } from './algorithms/BufferedBlockAlgorithm'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Abstract hasher template.
|
|
7
|
+
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
|
|
8
|
+
*/
|
|
9
|
+
export const Hasher = BufferedBlockAlgorithm.extend({
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options.
|
|
12
|
+
*/
|
|
13
|
+
cfg: Base.extend(),
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Initializes a newly created hasher.
|
|
17
|
+
*
|
|
18
|
+
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* var hasher = CryptoJS.algo.SHA256.create();
|
|
23
|
+
*/
|
|
24
|
+
init: function (cfg) {
|
|
25
|
+
// Apply config defaults
|
|
26
|
+
this.cfg = this.cfg.extend(cfg)
|
|
27
|
+
|
|
28
|
+
// Set initial values
|
|
29
|
+
this.reset()
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Resets this hasher to its initial state.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
*
|
|
37
|
+
* hasher.reset();
|
|
38
|
+
*/
|
|
39
|
+
reset: function () {
|
|
40
|
+
// Reset data buffer
|
|
41
|
+
BufferedBlockAlgorithm.reset.call(this)
|
|
42
|
+
|
|
43
|
+
// Perform concrete-hasher logic
|
|
44
|
+
this._doReset()
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Updates this hasher with a message.
|
|
49
|
+
*
|
|
50
|
+
* @param {WordArray|string} messageUpdate The message to append.
|
|
51
|
+
*
|
|
52
|
+
* @return {Hasher} This hasher.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
*
|
|
56
|
+
* hasher.update('message');
|
|
57
|
+
* hasher.update(wordArray);
|
|
58
|
+
*/
|
|
59
|
+
update: function (messageUpdate) {
|
|
60
|
+
// Append
|
|
61
|
+
this._append(messageUpdate)
|
|
62
|
+
|
|
63
|
+
// Update the hash
|
|
64
|
+
this._process()
|
|
65
|
+
|
|
66
|
+
// Chainable
|
|
67
|
+
return this
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Finalizes the hash computation.
|
|
72
|
+
* Note that the finalize operation is effectively a destructive, read-once operation.
|
|
73
|
+
*
|
|
74
|
+
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
75
|
+
*
|
|
76
|
+
* @return {WordArray} The hash.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
*
|
|
80
|
+
* var hash = hasher.finalize();
|
|
81
|
+
* var hash = hasher.finalize('message');
|
|
82
|
+
* var hash = hasher.finalize(wordArray);
|
|
83
|
+
*/
|
|
84
|
+
finalize: function (messageUpdate) {
|
|
85
|
+
// Final message update
|
|
86
|
+
if (messageUpdate) {
|
|
87
|
+
this._append(messageUpdate)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Perform concrete-hasher logic
|
|
91
|
+
var hash = this._doFinalize()
|
|
92
|
+
|
|
93
|
+
return hash
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
blockSize: 512 / 32,
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Creates a shortcut function to a hasher's object interface.
|
|
100
|
+
*
|
|
101
|
+
* @param {Hasher} hasher The hasher to create a helper for.
|
|
102
|
+
*
|
|
103
|
+
* @return {Function} The shortcut function.
|
|
104
|
+
*
|
|
105
|
+
* @static
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
*
|
|
109
|
+
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
|
110
|
+
*/
|
|
111
|
+
_createHelper: function (hasher) {
|
|
112
|
+
return function (message, cfg) {
|
|
113
|
+
return new hasher.init(cfg).finalize(message)
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Creates a shortcut function to the HMAC's object interface.
|
|
119
|
+
*
|
|
120
|
+
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
|
121
|
+
*
|
|
122
|
+
* @return {Function} The shortcut function.
|
|
123
|
+
*
|
|
124
|
+
* @static
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
*
|
|
128
|
+
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
|
129
|
+
*/
|
|
130
|
+
_createHmacHelper: function (hasher) {
|
|
131
|
+
return function (message, key) {
|
|
132
|
+
return new C_algo().HMAC.init(hasher, key).finalize(message)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
// export const Hasher =BufferedBlockAlgorithm.extend({
|
|
138
|
+
// C_lib(this)
|
|
139
|
+
// return {
|
|
140
|
+
// /**
|
|
141
|
+
// * Configuration options.
|
|
142
|
+
// */
|
|
143
|
+
// cfg: Base.extend(),
|
|
144
|
+
// blockSize: 512 / 32,
|
|
145
|
+
// /**
|
|
146
|
+
// * Initializes a newly created hasher.
|
|
147
|
+
// * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
|
148
|
+
// * @example
|
|
149
|
+
// * var hasher = CryptoJS.algo.SHA256.create();
|
|
150
|
+
// */
|
|
151
|
+
// init: function(cfg) {
|
|
152
|
+
// // Apply config defaults
|
|
153
|
+
// this.cfg = this.cfg.extend(cfg)
|
|
154
|
+
|
|
155
|
+
// // Set initial values
|
|
156
|
+
// this.reset()
|
|
157
|
+
// },
|
|
158
|
+
|
|
159
|
+
// /**
|
|
160
|
+
// * Resets this hasher to its initial state.
|
|
161
|
+
// * @example
|
|
162
|
+
// * hasher.reset();
|
|
163
|
+
// */
|
|
164
|
+
// reset: function() {
|
|
165
|
+
// // Reset data buffer
|
|
166
|
+
// BufferedBlockAlgorithm.reset.call(this)
|
|
167
|
+
|
|
168
|
+
// // Perform concrete-hasher logic
|
|
169
|
+
// this._doReset()
|
|
170
|
+
// },
|
|
171
|
+
|
|
172
|
+
// /**
|
|
173
|
+
// * Updates this hasher with a message.
|
|
174
|
+
// * @param {WordArray|string} messageUpdate The message to append.
|
|
175
|
+
// * @return {Hasher} This hasher.
|
|
176
|
+
// * @example
|
|
177
|
+
// * hasher.update('message');
|
|
178
|
+
// * hasher.update(wordArray);
|
|
179
|
+
// */
|
|
180
|
+
// update: function(messageUpdate) {
|
|
181
|
+
// // Append
|
|
182
|
+
// this._append(messageUpdate)
|
|
183
|
+
|
|
184
|
+
// // Update the hash
|
|
185
|
+
// this._process()
|
|
186
|
+
|
|
187
|
+
// // Chainable
|
|
188
|
+
// return this
|
|
189
|
+
// },
|
|
190
|
+
|
|
191
|
+
// /**
|
|
192
|
+
// * Finalizes the hash computation.
|
|
193
|
+
// * Note that the finalize operation is effectively a destructive, read-once operation.
|
|
194
|
+
// * @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
195
|
+
// * @return {WordArray} The hash.
|
|
196
|
+
// * @example
|
|
197
|
+
// * var hash = hasher.finalize();
|
|
198
|
+
// * var hash = hasher.finalize('message');
|
|
199
|
+
// * var hash = hasher.finalize(wordArray);
|
|
200
|
+
// */
|
|
201
|
+
// finalize: function(messageUpdate) {
|
|
202
|
+
// // Final message update
|
|
203
|
+
// if (messageUpdate) {
|
|
204
|
+
// this._append(messageUpdate)
|
|
205
|
+
// }
|
|
206
|
+
|
|
207
|
+
// // Perform concrete-hasher logic
|
|
208
|
+
// var hash = this._doFinalize()
|
|
209
|
+
|
|
210
|
+
// return hash
|
|
211
|
+
// },
|
|
212
|
+
|
|
213
|
+
// /**
|
|
214
|
+
// * Creates a shortcut function to a hasher's object interface.
|
|
215
|
+
// * @param {Hasher} hasher The hasher to create a helper for.
|
|
216
|
+
// * @return {Function} The shortcut function.
|
|
217
|
+
// * @static
|
|
218
|
+
// * @example
|
|
219
|
+
// * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
|
220
|
+
// */
|
|
221
|
+
// _createHelper: function(hasher) {
|
|
222
|
+
// return function(message, cfg) {
|
|
223
|
+
// return new hasher.init(cfg).finalize(message)
|
|
224
|
+
// }
|
|
225
|
+
// },
|
|
226
|
+
|
|
227
|
+
// /**
|
|
228
|
+
// * Creates a shortcut function to the HMAC's object interface.
|
|
229
|
+
// * @param {Hasher} hasher The hasher to use in this HMAC helper.
|
|
230
|
+
// * @return {Function} The shortcut function.
|
|
231
|
+
// * @static
|
|
232
|
+
// * @example
|
|
233
|
+
// * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
|
234
|
+
// */
|
|
235
|
+
// _createHmacHelper: function(hasher) {
|
|
236
|
+
// return function(message, key) {
|
|
237
|
+
// return new C_lib.algo.HMAC.init(hasher, key).finalize(message)
|
|
238
|
+
// }
|
|
239
|
+
// }
|
|
240
|
+
// }
|
|
241
|
+
// })
|