Создать симметричный ключ в android, который можно использовать для создания Json Web Token

Наша внешняя сторона следовала методу генерации симметричного ключа с помощью API веб-криптографии:

const tempKey = await crypto.subtle.deriveKey(
      {
        name: 'PBKDF2', salt: salt,
        iterations: 100000, hash: 'SHA-256'
      },
      importedPassword,
      {name: 'AES-GCM', length: 256},
      true,
      ['encrypt']
    );

Из чего я попытался интерпретировать 1-й параметр, который должен сгенерировать PBKDF2:

SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
        KeySpec keySpec = new PBEKeySpec(passphraseOrPin).toCharArray(), salt.getBytes(), iterations, outputKeyLength);
        SecretKey secretKey = secretKeyFactory.generateSecret(keySpec);

Тогда я совершенно не понимаю 3-й параметр, в котором он пытается запустить алгоритм AES с длиной 256 на сгенерированномSecretKey. Как это сделать в андроиде? а зачем это нужно или выгодно??

1 ответ

Я не знаю этого API, но предполагаю, что он используется для определения подходящего количества бит для вывода из KDF. он на самом деле не работает / не использует AES для чего-либо здесь

в документации для этого параметра говорится:

derivedKeyAlgorithm - объект, определяющий алгоритм, для которого будет использоваться производный ключ.

что кажется последовательным

Другие вопросы по тегам