MCPcopy Create free account
hub / github.com/awslabs/llrt / from_aes

Function from_aes

modules/llrt_crypto/src/subtle/key_algorithm.rs:411–476  ·  view source on GitHub ↗
(
    ctx: &Ctx<'js>,
    mode: KeyAlgorithmMode<'_, 'js>,
    obj: std::result::Result<Object<'js>, &str>,
    algorithm_name: &str,
    usages: &Array<'js>,
    private_usages: &mut Vec<String>,
   

Source from the content-addressed store, hash-verified

409 import_okp_key(
410 ctx,
411 format,
412 kind,
413 data,
414 const_oid::db::rfc8410::ID_X_25519,
415 algorithm_name,
416 false,
417 )?;
418 Ok(Some(*kind))
419 } else {
420 Ok(None)
421 }
422 }
423
424 #[cfg(not(feature = "_subtle-full"))]
425 #[inline]
426 fn import<'js>(
427 _ctx: &Ctx<'js>,
428 _mode: KeyAlgorithmMode<'_, 'js>,
429 _algorithm_name: &str,
430 ) -> Result<Option<KeyKind>> {
431 Ok(None)
432 }
433
434 let key_kind = import(ctx, mode, algorithm_name)?;
435 KeyUsage::classify_and_check_usages(
436 ctx,
437 KeyUsageAlgorithm::DeriveAsymmetric,
438 usages,
439 private_usages,
440 public_usages,
441 key_kind.as_ref(),
442 )?;
443 Ok(KeyAlgorithm::X25519)
444}
445
446fn from_aes<'js>(
447 ctx: &Ctx<'js>,
448 mode: KeyAlgorithmMode<'_, 'js>,
449 obj: Result<Object<'js>>,
450 algorithm_name: &str,
451 usages: &Array<'js>,
452 private_usages: &mut Vec<String>,
453 public_usages: &mut Vec<String>,
454) -> Result<KeyAlgorithm> {
455 #[cfg(feature = "_subtle-full")]
456 #[inline]
457 fn import<'js>(
458 ctx: &Ctx<'js>,
459 mode: KeyAlgorithmMode<'_, 'js>,
460 obj: Result<Object<'js>>,
461 algorithm_name: &str,
462 ) -> Result<(u16, Option<KeyKind>)> {
463 if let KeyAlgorithmMode::Import { data, format, kind } = mode {
464 let length =
465 import_symmetric_key(ctx, format, kind, data, algorithm_name, None)? as u16;
466 Ok((length, Some(*kind)))
467 } else {
468 let length: u16 = obj?.get_required("length", "algorithm")?;

Callers 1

from_jsMethod · 0.85

Calls 1

importFunction · 0.85

Tested by

no test coverage detected