| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a6a31cb commit 16afd10
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -5,6 +5,8 @@ const common = require('../common'); | |||
| 5 | 5 | if (!common.hasCrypto) | |
| 6 | 6 | common.skip('missing crypto'); | |
| 7 | 7 | ||
| 8 | + const { hasOpenSSL } = require('../common/crypto'); | ||
| 9 | + | ||
| 8 | 10 | const assert = require('assert'); | |
| 9 | 11 | const { subtle } = globalThis.crypto; | |
| 10 | 12 | ||
@@ -187,6 +189,17 @@ async function generateKeysToWrap() { | |||
| 187 | 189 | }, | |
| 188 | 190 | ]; | |
| 189 | 191 | ||
| 192 | + if (hasOpenSSL(3, 5)) { | ||
| 193 | + for (const name of ['ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']) { | ||
| 194 | + parameters.push({ | ||
| 195 | + algorithm: { name }, | ||
| 196 | + privateUsages: ['sign'], | ||
| 197 | + publicUsages: ['verify'], | ||
| 198 | + pair: true, | ||
| 199 | + }); | ||
| 200 | + } | ||
| 201 | + } | ||
| 202 | + | ||
| 190 | 203 | const allkeys = await Promise.all(parameters.map(async (params) => { | |
| 191 | 204 | const usages = 'usages' in params ? | |
| 192 | 205 | params.usages : | |
@@ -220,10 +233,28 @@ async function generateKeysToWrap() { | |||
| 220 | 233 | } | |
| 221 | 234 | ||
| 222 | 235 | function getFormats(key) { | |
| 223 | - switch (key.key.type) { | ||
| 224 | - case 'secret': return ['raw', 'jwk']; | ||
| 225 | - case 'public': return ['spki', 'jwk']; | ||
| 226 | - case 'private': return ['pkcs8', 'jwk']; | ||
| 236 | + switch (key.type) { | ||
| 237 | + case 'secret': { | ||
| 238 | + return ['raw-secret', 'raw', 'jwk']; | ||
| 239 | + }; | ||
| 240 | + case 'public': { | ||
| 241 | + switch (key.algorithm.name.slice(0, 2)) { | ||
| 242 | + case 'EC': // ECDSA, ECDH | ||
| 243 | + return ['spki', 'jwk', 'raw', 'raw-public']; | ||
| 244 | + case 'ML': // ML-DSA | ||
| 245 | + return ['jwk', 'raw-public']; | ||
| 246 | + default: | ||
| 247 | + return ['spki', 'jwk']; | ||
| 248 | + } | ||
| 249 | + } | ||
| 250 | + case 'private': { | ||
| 251 | + switch (key.algorithm.name.slice(0, 2)) { | ||
| 252 | + case 'ML': // ML-DSA | ||
| 253 | + return ['jwk', 'raw-seed']; | ||
| 254 | + default: | ||
| 255 | + return ['pkcs8', 'jwk']; | ||
| 256 | + } | ||
| 257 | + } | ||
| 227 | 258 | } | |
| 228 | 259 | } | |
| 229 | 260 | ||
@@ -285,7 +316,7 @@ function testWrapping(name, keys) { | |||
| 285 | 316 | } = kWrappingData[name]; | |
| 286 | 317 | ||
| 287 | 318 | keys.forEach((key) => { | |
| 288 | - getFormats(key).forEach((format) => { | ||
| 319 | + getFormats(key.key).forEach((format) => { | ||
| 289 | 320 | variations.push(testWrap(wrappingKey, unwrappingKey, key, wrap, format)); | |
| 290 | 321 | }); | |
| 291 | 322 | }); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments