首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态口令24上的ExCrypto

动态口令24上的ExCrypto
EN

Stack Overflow用户
提问于 2021-07-30 11:35:31
回答 1查看 131关注 0票数 1

应用程序升级到运行elixir 1.12.2,并使用OTP 24,我已经确认这些是运行的版本。

在运行某些测试时,我得到以下错误:

代码语言:javascript
复制
** (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的代码行是:

代码语言:javascript
复制
ExCrypto.encrypt(content_key, "", content_json)

我为ExCrytpo找到了一个公关,它应该可以解决这个问题:https://github.com/ntrepid8/ex_crypto/pull/40

有人留下评论,询问是否需要将代码推送到hex.pm,并想知道是否该代码还没有发布到hex.pm?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-30 14:07:42

是的,似乎ExCrypto还没有发布包含该PR中的更改到十六进制的版本。最新版本on hex0.10.0,于2019年2月20日发布。PR于2021年5月27日合并。

作为一种解决办法,您可以使用git存储库作为依赖项的来源,而不是十六进制:

代码语言:javascript
复制
{:ex_crypto, git: "https://github.com/ntrepid8/ex_crypto.git", branch: "master"}

最好是固定到特定的提交,而不是主分支:

代码语言:javascript
复制
{:ex_crypto,
 git: "https://github.com/ntrepid8/ex_crypto.git",
 ref: "0915c274503f9fc6d6f5fab8c98467e7414cf8fc"}

另一个(可能更好的)选择是,您可以通过更新代码以直接使用ExCrypto :crypto库来消除对Erlang的依赖。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68590320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档