1

Android、iOS、JS で crypto_kdf_derive_from_key 関数を使用しようとしました。Android と iOS では同じ出力が生成されますが、JS では生成されません。コンテキスト、マスター キー、およびサイズは同じです。理由はありますか?

すべてのプラットフォームは、以下の同じコア関数を使用します: crypto_kdf_derive_from_key

JS:

generateKey(basedOnKey: string): Uint8Array {
    const masterKey = this.convertHexToBytes(basedOnKey);
    const context = this.textEncoder.encode('AAAAAAAA');
    const newKey = sodium.crypto_kdf_derive_from_key(sodium.crypto_secretbox_KEYBYTES, 0, context, masterKey);

    return newKey;
}

iOS:

public func getNewSecretKey(basedOn key: String) -> Data? {
    let masterKey = key.hexDecodedData().bytes
    let context = "AAAAAAAA"
    let newKey = sodium.keyDerivation.derive(secretKey: masterKey, index: 0, length: 32, context: context)

    return newKey?.data
}
4

2 に答える 2