OTP 24 上的 ExCrypto
ExCrypto on OTP 24
应用程序已升级到 运行 elixir 1.12.2 并使用 OTP 24,我已确认这些是版本 运行ning。
当 运行 进行一些测试时,出现以下错误:
** (UndefinedFunctionError) function :crypto.block_encrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_(dyn_iv)?_init + crypto:crypto_(dyn_iv)?_update + crypto:crypto_final instead
我进行的大多数谷歌搜索都建议将 plug_crypto 升级到版本 1.2.2,这已经完成。
此函数 block_encrypt/4 是底层 Erlang 代码,在我的 Elixir 代码中调用 block_encrypt/4 的行是:
ExCrypto.encrypt(content_key, "", content_json)
我找到了一个 ExCrytpo 的 PR,应该可以解决这个问题:https://github.com/ntrepid8/ex_crypto/pull/40
有人留言询问是否需要将代码推送到 hex.pm,并想知道是否有可能此代码尚未发布到 hex.pm?
是的,似乎 ExCrypto 尚未发布包含该 PR 中对 Hex 的更改的版本。最新版本on hex为0.10.0
,发布于2019年2月20日。PR于2021年5月27日合并。
作为解决方法,您可以使用 git 存储库作为依赖项的来源,而不是 Hex:
{:ex_crypto, git: "https://github.com/ntrepid8/ex_crypto.git", branch: "master"}
固定到特定提交而不是主分支可能是个好主意:
{:ex_crypto,
git: "https://github.com/ntrepid8/ex_crypto.git",
ref: "0915c274503f9fc6d6f5fab8c98467e7414cf8fc"}
另一个(可能更好)选项是您可以通过更新代码以直接使用 Erlang :crypto
库来删除对 ExCrypto 的依赖。
应用程序已升级到 运行 elixir 1.12.2 并使用 OTP 24,我已确认这些是版本 运行ning。
当 运行 进行一些测试时,出现以下错误:
** (UndefinedFunctionError) function :crypto.block_encrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_(dyn_iv)?_init + crypto:crypto_(dyn_iv)?_update + crypto:crypto_final instead
我进行的大多数谷歌搜索都建议将 plug_crypto 升级到版本 1.2.2,这已经完成。
此函数 block_encrypt/4 是底层 Erlang 代码,在我的 Elixir 代码中调用 block_encrypt/4 的行是:
ExCrypto.encrypt(content_key, "", content_json)
我找到了一个 ExCrytpo 的 PR,应该可以解决这个问题:https://github.com/ntrepid8/ex_crypto/pull/40
有人留言询问是否需要将代码推送到 hex.pm,并想知道是否有可能此代码尚未发布到 hex.pm?
是的,似乎 ExCrypto 尚未发布包含该 PR 中对 Hex 的更改的版本。最新版本on hex为0.10.0
,发布于2019年2月20日。PR于2021年5月27日合并。
作为解决方法,您可以使用 git 存储库作为依赖项的来源,而不是 Hex:
{:ex_crypto, git: "https://github.com/ntrepid8/ex_crypto.git", branch: "master"}
固定到特定提交而不是主分支可能是个好主意:
{:ex_crypto,
git: "https://github.com/ntrepid8/ex_crypto.git",
ref: "0915c274503f9fc6d6f5fab8c98467e7414cf8fc"}
另一个(可能更好)选项是您可以通过更新代码以直接使用 Erlang :crypto
库来删除对 ExCrypto 的依赖。