问题标签 [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.

0 投票
1 回答
387 浏览

java - Google/Tink:使用 AWS KMS Key 加密密钥材料但得到 NullPointerException

当我使用跟随演示加密密钥材料时,我在 AwsKmsClient().getAead() 方法中得到了 NullPointerException。

我调试并发现 AwsKmsClientthis.client中的 AWSKMS client() is null.

你知道如何处理这个问题吗?或者如何正确使用 AWS KMS?提前致谢。

0 投票
4 回答
2339 浏览

java - Google/Tink:如何使用公钥验证签名

我们希望在我们的项目中使用Tink库,以便能够在给定公钥的情况下验证一些传入的签名。

我们拥有以下内容:

  1. 公钥作为字符串
  2. 签名本身
  3. 明文

在浏览了 Tink 的文档后,我们无法弄清楚如何加载公钥字符串以便PublicKeyVerifyFactory.

有没有人做过类似的事情?您是否在网上找到任何可以为我们指明正确方向的示例?

0 投票
0 回答
476 浏览

java - 使用 JAR 文件中的静态变量

我创建了一个可运行的 JAR 文件,其中包含一个包含以下代码的类:

在我的其他 Java 应用程序中,我将此 JAR 文件作为外部 JAR 文件导入,并尝试运行这些方法:

加密函数按预期工作,但解密返回 aNullPointerException因为keysetHandle为空。如何获得更新后的值keysetHandle

0 投票
1 回答
155 浏览

android - Google / Tink:XChaCha20Poly1305 加密与自定义非随机随机数

我想使用 Tink 来替换 Android 上的 Sodium-JNI。Tink 似乎很棒,而且非常易于使用。但我有一个问题。在我的用例中,我必须与其他对等方交换 XChaCha20Poly1305 加密消息,并且对等方只发送随机数的某些部分,而不是整个 24 字节。然后使用这个缩短的随机数来恢复/导出完整的 24 个随机数字节。这就是为什么我需要完全控制使用的随机数并设置自定义随机数进行加密,而不是使用 Tink 选择的随机随机数进行加密。有没有一种简单的方法可以在 Tink 中将我的自定义随机数与 XChaCha20Poly1305 一起使用?

在此先感谢并问候布鲁诺

0 投票
1 回答
747 浏览

java - Tink 中的多个私钥/公钥对

我最近开始探索“Tink”,现在卡在一个特定的问题上,在文档或在线上找不到解决方案。

情况是:我想要两组公钥/私钥对。一个将处于活动状态,另一个将被禁用。

我所做的是生成这样的KeyHandle并将其存储在AWS KMS中:

我这样做是因为我认为我会生成两对并将它们保存在不同的 json 文件中:

  1. 'pri-p'(主要)
  2. 'pub-p' (主要)
  3. 'pri-s'(次要)
  4. 'pub-s'(次要)

完成此操作后,我编写了一个 API,它将公钥(主密钥和辅助密钥)返回给客户端,响应为:

现在我想将第二个设置为非活动状态,以便没有人使用它,这意味着status: DISABLED使用如下代码:

但我得到了例外:

那时,我意识到我所做的事情是错误的,我不得不再次这样做,以便两个Keys在同一个KeysetHandle中,而我无法像创建 KeysetHandle 时那样做:

它已经被标记为主键,如果我从中检索公钥,那也将是主键。无论我生成多少密钥,都将使用它标记为主要密钥。

还有另一种方式:

  1. 创建多个密钥
  2. 添加键集
  3. 将其中一个标记为主要
  4. 创建KeysetHandle
  5. 写入 AWS Kms

但我不确定该怎么做,或者它是否是正确的方法。

在这方面需要一些帮助,我真的很感激。

0 投票
2 回答
354 浏览

openssl - google-cloud-kms PKCS7 加密消息语法

有没有人使用 Google 的 HSM 和 KMS 服务实现加密消息语法?

很难判断此功能是否内置在Tink库中。

没有适用于 OpenSSL 或 BoringSSL 的 Google 引擎(如果不是这种情况,希望得到纠正)并且由于引擎需要用 clang 编写,我想包含 tink.so 库相当困难?

如果有人有任何关于在 Google 的 KMS 服务上执行这些类型的操作的信息,将不胜感激。

0 投票
1 回答
251 浏览

tink - 如何从用户提供的密码生成 Tink 密钥

我想存储一个 keyset,并希望使用用户提供的“主密码”生成的密钥对文件进行加密。当然,稍后我想,给定相同的主密码,能够通过解密文件来加载该密钥集。

看来我需要一个Aead,我可以从一个KeysetHandlewith生成它AeadFactory.getPrimitive(keysetHandle)。但是我怎样才能KeysetHandle从“主密码”中产生一个?

(对于这个问题的上下文,从密钥管理系统获取该密钥,而不是从主密码“凭空”产生它,不是一种选择。)

0 投票
1 回答
75 浏览

tink - 在 Tink 中使用对称键

我正在尝试将明文密码存储在属性文件中并使用 CleartextKeysetHandle.read 加载该 JSON

但是,当我想轮换密钥时,我想介绍另一个密钥,即另一个明文密码。如何加载此密钥并将其添加到 keymanager ?

0 投票
3 回答
8224 浏览

java - 如何使用 Tink 轻松加密和解密字符串?

到目前为止,我一直在使用 jasypt 加密字符串,然后在应用程序关闭时将其存储在磁盘上,然后在打开应用程序以在从磁盘检索字符串后解密字符串时。

使用 jasypt 非常简单,代码如下:

它工作得很好,但是现在,jasypt 已被弃用,我正在尝试迁移到Google Tink库,问题是 Google Tink 似乎要复杂得多,因为只需像使用 jasypt 一样轻松地加密和解密字符串。

我在 Tink repo 自述文件中找不到加密和解密字符串的简单方法,只能找到更复杂的操作,实际上我无法理解,因为我在加密方面的知识完全是空的。因此,我使用了一个非常简单的库,比如 jasypt。

这是 Tink 仓库:https ://github.com/Google/tink

有没有一种简单的方法,类似于我的 jasypt 代码,用 Tink 加密和解密字符串?

0 投票
1 回答
556 浏览

encryption - 多次注册AeadConfig后解密失败?

我正在加密一些文本并尝试对其进行解密,但是当我使用不同的 AeadConfig.register() 进行解密而不是加密时,它无法解密。我想知道如何解决这个问题,因为我将在一个活动中加密并在另一个活动中解密。为了在下面给出一个例子,我已经简化了它。

如果我只是将 aead 作为参数传递,这是可行的,但我不确定这是否是我应该做的事情。

现在解密会引发异常。我认为它是由aeadConfig引起的,但我不知道如何只注册一次,所以一旦解决了它就不会再抛出异常了。