标签: bouncycastle

用于Blowfish引擎的Bouncy Castle CTS模式未按预期工作

也许我的期望是错的.我不是加密专家,我只是一个简单的用户.到目前为止,我已经详尽地试图使这项工作取得成功.

背景资料:

我正在尝试从Delphi Encryption Compendium移植Legacy Encryption,它使用Blowfish Engine(TCipher_Blowfish_)和CTS操作模式(cmCTS).私钥由RipeMD256(THash_RipeMD256)进行哈希处理.

问题:

输入纯文本字节数组的大小必须相同CIPHER_BLOCK.据我所知,它不应该.

来自维基百科:

在密码学中,密文窃取(CTS)是使用分组密码操作模式的一般方法,其允许处理不可均分成块的消息而不会导致密文的任何扩展,代价是稍微增加了复杂性.

输出与旧例程不同:

我正在使用:

  • 相同的IV
  • 相同的密码
  • 相同的输入纯文本

遗留应用程序使用ANSI String,新的使用Unicode,因此对于我调用的每个输入字符串Encoding.ASCII.GetBytes("plainText"),Encoding.ASCII.GetBytes("privatepassword").

然后由RipeMD256对私有密码字节进行散列,我检查了输出字节,它们是相同的.

我可以确认问题在Bouncy Clastle(操作模式或缺少配置/步骤)中是特定的,因为我已经下载了第二个库Blowfish.cs并使用8字节的输入(与密码块大小相同)并使用Encrypt_CBC(bytes[])with相同的IV产生与传统格式相同的输出.

这是我使用两个代码的草图Blowfish.csBouncy Castle:

德尔福加密纲要

var 
  IV: Array [0..7] of Byte (1,2,3,4,5,6,7,8);
  Key: String = '12345678';
with TCipher_Blowfish.Create('', nil) do
begin
  try
    InitKey(Key, @IV); //Key is auto hashed using RIPE256 here;
    Result:= CodeString('12345678', paEncode, -1); //Output bytes is later encoded as …
Run Code Online (Sandbox Code Playgroud)

c# delphi encryption bouncycastle

17
推荐指数
1
解决办法
716
查看次数

Java Bouncy Castle Cryptography - 使用AES加密

如何使用java bouncy castle library实现AES加密?示例代码或示例代码的链接将是不错的:)

java encryption bouncycastle

16
推荐指数
1
解决办法
3万
查看次数

Bouncy Castle API文档在哪里?

我需要做一些基于加密的工作,我发现Bouncy Castle API既可用于C#也可用于JAVA,对于java它有文档,但它没有C#的文档.

任何人都可以提供一些资源,我可以从中获得使用C#使用Bouncy Castle的想法吗?

c# bouncycastle

16
推荐指数
1
解决办法
1万
查看次数

将公钥从其他地方导入CngKey?

我正在寻找一种跨平台的方式来共享ECDSA签名的公钥.从CngKey和标准.NET加密库的性能角度来看,我有一个很棒的事情,但后来我无法弄清楚33(或65)字节的公钥(使用secp256r1/P256)是如何变成104字节的由MS .. Ergo,我无法支持跨平台签名和验证..

我现在正在使用BouncyCastle,但神圣的handgranade它很慢!

因此,寻找以下要求的建议:

  1. 跨平台/语言(服务器是.NET,但这是通过JSON/Web.API接口提供的)
    • JavaScript,Ruby,Python,C++等.
  2. 在服务器上并不疯狂
  3. 不那么痛苦的慢人们不能在客户端上使用它.

客户端必须能够对消息进行签名,服务器必须能够使用在注册到服务时交换的公钥来验证签名.

无论如何,想法会很棒...谢谢

javascript c# cryptography bouncycastle cng

16
推荐指数
2
解决办法
7475
查看次数

自签名X509证书与Java中的Bouncy Castle

我需要在Java中创建一个带有Bouncy Castle的自签名X509证书,但我尝试包含的每个类都已弃用.我怎么解决这个问题?还有其他课程要包含吗?谢谢

java cryptography bouncycastle certificate x509

16
推荐指数
3
解决办法
2万
查看次数

META-INF/versions/9/module-info.class:类文件损坏?(此功能需要 ASM6)

我在使用 Bouncycastle 时遇到了问题,这仅在运行:lint任务时出现。

通常它似乎是 Java 9 字节码版本 53.0 / ASM版本冲突。

这些是依赖项:

// https://mvnrepository.com/artifact/org.bouncycastle
implementation "org.bouncycastle:bcprov-jdk15on:1.64"
implementation "org.bouncycastle:bcpkix-jdk15on:1.64"
Run Code Online (Sandbox Code Playgroud)

这导致:lint任务抛出处理错误:

> Task :mobile:lint
Error processing bcpkix-jdk15on-1.64.jar:META-INF/versions/9/module-info.class: broken class file? (This feature requires ASM6)
Error processing bcprov-jdk15on-1.64.jar:META-INF/versions/9/module-info.class: broken class file? (This feature requires ASM6)
Run Code Online (Sandbox Code Playgroud)

META-INF/versions/9/module-info.class:类文件损坏?(此功能需要 ASM6)

这同样适用于:

// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation "com.google.code.gson:gson:2.8.6"
Run Code Online (Sandbox Code Playgroud)

自从升级1.4.11.4.2-native-mt,它又是一样的:

implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2-native-mt"
Run Code Online (Sandbox Code Playgroud)

kotlin-stdlib-1.4.0.jar:META-INF\versions\9\module-info.class:类文件损坏?(模块需要 ASM6)

java android bouncycastle gson android-lint

16
推荐指数
2
解决办法
8319
查看次数

使用BouncyCastle使用RSA对C#签名数据

有没有人知道如何使用充气城堡在c#中签署数据的简单教程或示例代码.在Java中有大量的教程和示例.我在c#中找不到一个例子.有谁知道如何做到这一点?

c# bouncycastle

15
推荐指数
2
解决办法
2万
查看次数

ECDSA算法教程对字符串进行签名

你能帮我找一个简单的教程,讲解如何在java中使用ECDSA算法对字符串进行签名.但是没有使用任何像bouncycastle这样的第三方库.只是JDK 7.我发现很难搜索一个简单的例子,我是密码学的新手.


import java.io.*;
import java.security.*;

public class GenSig {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /*
         * Generate a DSA signature
         */

        try {

            /*
             * Generate a key pair
             */

            KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
            SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");

            keyGen.initialize(1024, random);

            KeyPair pair = keyGen.generateKeyPair();
            PrivateKey priv = pair.getPrivate();
            PublicKey pub = pair.getPublic();

            /*
             * Create a Signature object and initialize it with the private key
             */

            Signature …
Run Code Online (Sandbox Code Playgroud)

java cryptography bouncycastle digital-signature

15
推荐指数
2
解决办法
3万
查看次数

使用BouncyCastleProvider的KeyStore:KeyStore完整性检查失败

我想为ssl连接使用自签名签名.我正在关注这篇文章.

我的问题:创建密钥库后,我的完整性检查失败.

Keytool-Error: java.io.IOException: KeyStore integrity check failed.
Run Code Online (Sandbox Code Playgroud)

我还在寻找,但也许有人可以节省我一些时间.

java ssl bouncycastle keystore

15
推荐指数
2
解决办法
1万
查看次数

使用BouncyCastle API生成CSR

我是Java的安全方面的新手,偶然发现了这个名为bouncycastle的库.但他们提供的示例和互联网上的示例要求使用 -

     return new PKCS10CertificationRequest("SHA256withRSA", new X500Principal(
    "CN=Requested Test Certificate"), pair.getPublic(), null, pair.getPrivate()
Run Code Online (Sandbox Code Playgroud)

但是当我使用PKCS10CertificationRequest时,看起来它已被弃用.所以我开始研究另一种使用CertificationRequest类的方法.但我真的很困惑,构造函数不采用相同的参数,而是需要CertificationRequestInfo类,我不知道如何填写.

    CertificationRequest request = new CertificationRequest(...);
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮我弄清楚如何制作CSR以便我可以将其发送到服务器以获得签名,那将是非常棒的.

谢谢,

java security bouncycastle certificate

15
推荐指数
1
解决办法
1万
查看次数