无法从WinApi箱中调用CryptDecrypt,因为它无法找到该模块

时间:2018-01-29 19:52:58

标签: windows api winapi rust rust-cargo

documentation中它表示该函数在winapi::um::wincrypt::CryptDecrypt但是当我安装包并将它带入我的项目时,一切正常,直到我尝试调用函数,我得到以下错误消息:

error[E0433]: failed to resolve. Could not find `wincrypt` in `um`
  --> src\main.rs:68:39
   |
68 |  let decrypted_password = winapi::um::wincrypt::CryptDecrypt(password);
   |                                       ^^^^^^^^ Could not find `wincrypt` in `um`

我的目标是解密Chrome存储密码的计算机上的“本地数据”文件中的密码。我在Rust中使用名为win32crypt的Windows winapi API绑定。我试图在Rust中完成与chromepass类似的东西。

2 个答案:

答案 0 :(得分:3)

来自crate-level documentation

  

常见问题

     

为什么我收到有关未解决的导入的错误?

     

每个模块都在功能标志上进行门控,因此您必须启用   获取这些项目的适当功能。例如,如果你   想要使用winapi::um::winuser中的内容,你必须启用   winuser功能。

在这种情况下,您需要添加wincrypt

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["wincrypt"] }

答案 1 :(得分:-1)

0.2.8 版本太旧,所以当我将 wincrypt 作为功能添加到 Cargo.toml 时,我遇到了构建错误。

enter image description here

features = ["wincrypt"] 在 0.3.9 版本中效果更好/有所不同。