问题标签 [tink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何旋转键?
我正在查看 Tink 文档,但我没有看到如何旋转密钥的清晰方法。基本上,我想做一些类似的事情:
该文档讨论了密钥轮换如何成为该库的核心功能。但是,文档中没有关于如何执行此操作的示例。使用库旋转密钥的“正确”方法是什么?我还希望单独旋转并激活新密钥。
android - 使用 AndroidKeysetManager 从 Tink 导出键集条目
我在一个android项目中使用'androidx.security:security-crypto:1.1.0-alpha02 '。它适用于文件加密/解密。我在需要使用身份验证的硬件密钥库中设置了一个主密钥。
安全 API自动生成我认为是Tink密钥集文件,适用于 Android 共享首选项。
如果我理解正确,那是用于加密文件的实际 DEK。
现在的问题是,如果我想导出加密文件,我将无法在另一台设备上解密,因为 Hardware KeyStore 中的主密钥不可导出。
最好的解决方案是使用 PBKDF2 导出密钥集中的DEK,然后将其解密到另一个设备密钥集中。
一个可选的解决方案是在密钥库之外创建主密钥材料,使用另一个 KeyStore 密钥保护它,并在需要时使用 PBKDF2 将其导出。这将破坏 jetpack 安全库的逻辑流程。
我尝试导入Tink库'com.google.crypto.tink:tink-android:1.5.0'以便我可以直接开始管理密钥集,因为安全 API 没有此用例的实现。
无论如何,我找不到使用此管理器解密密钥集中密钥的方法,以便能够使用密码对其进行加密并正确导出。
你知道应该如何面对这个问题吗?
java - Google Tink 混合参数
Google Tink支持“混合加密”——一种用非对称密钥加密对称密钥、用对称密钥加密明文并将两个密文捆绑为一条消息的便捷方法。
但是,似乎它基本上支持两组参数组合:
在内部,这些映射到例如
AesGcmKeyManager.aes128GcmTemplate()
交换例如for似乎相当简单AesGcmKeyManager.aes256GcmTemplate()
,除了createKeyTemplate
是私有的,并且 THAT 使用包私有方法,并且EciesAeadHkdfPrivateKeyManager
是最终的,总体而言,它似乎正在竭尽全力防止我们弄乱这些参数。这有什么原因吗?我应该从 Tink 源代码中重新构建我自己的修改版本和/或只是使用反射来绕过private
,还是有隐藏的非正交性让我绊倒并使结果不安全?
c++ - 如何在 C++ 中使用 bazel 构建 Google tink 库?
我想tink
为我的应用程序使用 Google 库。我使用 android 绑定了我的代码ndk
。但是,我无法tink
使用bazel
. 我已经在 github ( https://github.com/google/tink ) 上尝试了他们的示例。此外,我没有任何经验bazel
。因此,如果有人知道如何以tink
任何方式构建 Google 库,我也对这些选项持开放态度。
我在用:
- Ubuntu 20.04
- 巴泽尔 3.1.0
- gcc 版本是 9.3.0
我试图关注https://github.com/google/tink/blob/master/examples/cc/helloworld/README.md但它导致了一个错误:
go - 使用 Go 解密 Google Pay 支付令牌
我想使用 Go 语言实现对 Google Pay 支付令牌的解密。Google 强烈建议使用 Tink 库。
我查看了此处提供的说明,但无法弄清楚如何将已经存在的私钥和公钥对转换为密钥集。如果不可能,我是否应该先使用 Tink 生成私钥和公钥集,然后将其发送给 Google?
如果有人可以使用 Go 语言的 Tink 库或分步指南(甚至是简短的指南)提供 Google Pay 支付令牌的工作示例,那将非常有帮助。先感谢您。
node.js - 在节点 js 中验证来自 Google Pay for Passes(保存和删除)的回调签名?
在这里他们推荐 Tink 库,但没有 Node js 的实现,我正在寻找一些示例解决方案。
python - 如何将有效值传入 cleartext_keyset_json 以创建 Tink 密钥
在 Tink 中,可以将明文密钥集加载和编写为 jsons。下面是一个非工作示例:
我的问题是 - 是否可以将您自己的值插入到各种键/值对中以获得另一个有效的键集?我已经对此进行了实验并且没有取得太大的成功-主要是因为抱怨的“价值”键INVALID_ARGUMENT: Could not parse key_data.value as key type 'type.googleapis.com/google.crypto.tink.AesGcmKey'
知道什么是有效的“价值”吗?
android - AndroidKeysetManager Builder 与 HybridKeyTemplates 崩溃
我有加密/解密数据的 Android 代码。它是一年多前由另一位开发人员(后来他离开了)编写的,直到最近它才开始崩溃,并出现以下异常:
这似乎仅在升级应用程序并且现有密钥已经存在时才会发生。我针对之前的版本(有效)运行了 gradle 文件的差异,并且没有更新任何框架/sdk。
异常发生在 .build() 中:
我将代码跟踪到AndroidKeystoreAesGcm
并且从 getKey 返回的分配发生异常(成功):
这让我不确定如何进行。KeyStore 有一个密钥,我需要它来访问应用程序数据。我怀疑我的老宿敌 gradle 是罪魁祸首,但是......好吧,任何帮助或洞察力将不胜感激。
android - Tink GeneralSecurityException:找不到密钥模板:AES128_GCM Tink
我试图运行的内容:
我得到的错误:
我错过了什么吗?我是否不小心跳过了某个步骤?
android - 您可以将 com.google.crypto.tink 配置为使用 androidx.datastore 而不是 Shared Prefs
我当前的 Android 应用程序正在调查加密库的使用com.google.crypto.tink
com.google.crypto.tink.integration.android.AndroidKeysetManager
Builder
使用 sharedPrefs 如下所示
是否有androidx.datastore
不推荐使用共享首选项的版本?
是否由这个库的用户开发扩展功能来支持androidx.datastore