Tag: bouncycastle

使用BouncyCastle PGP解密文件的例外情况

我试图使用一个名为PgpDecrypt的类来解密客户端给出的这个示例文件。 但是当代码来到这一行时: Stream clear = pbe.GetDataStream(privKey); 它返回一个错误: exception解密密钥 这是我的解密代码: PgpDecrypt test = new PgpDecrypt(string.Concat(pathh, “TestDecryptionFile”), string.Concat(pathh, “mypgpprivatekey.key”), “mypassphrase”, @”d:/test/”, string.Concat(pathh, “clientpublickey.key”)); FileStream fs = File.Open(string.Concat(pathh, “TestDecryptionFile”), FileMode.Open); test.Decrypt(fs, @”d:\test\”); 我使用BouncyCastle作为.NET的第三方库。 任何解决这个问题的想法都会有很大的帮助。 提前致谢!

C#BouncyCastle – 使用公钥/私钥进行RSA加密

我需要在C#中加密数据,以便将其传递给Java。 Java代码属于第三方但我得到了相关的源代码,因此我决定,当Java使用Bouncy Castle库时,我将使用C#端口。 解密工作正常。 但是,只有当我使用私钥加密而不使用公钥时,解密才有效。 使用公钥时,解密会因unknown block type失败。 显然, RsaEncryptWithPrivate的加密在加密时使用公钥,所以我不明白为什么这两种加密方法在function上不相同: using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Encodings; using Org.BouncyCastle.Crypto.Engines; using Org.BouncyCastle.OpenSsl; public class EncryptionClass { public string RsaEncryptWithPublic(string clearText , string publicKey) { var bytesToEncrypt = Encoding.UTF8.GetBytes(clearText); var encryptEngine = new Pkcs1Encoding(new RsaEngine()); using (var txtreader = new StringReader(publicKey)) { var keyParameter = (AsymmetricKeyParameter)new PemReader(txtreader).ReadObject(); encryptEngine.Init(true, keyParameter); } […]

Bouncycastle PGP解密期间的PartialInputStream

我正在尝试解密我刚刚使用bouncycastle加密的文件,但是我得到了这个例外: Premature end of stream in PartialInputStream 我正在使用bouncycastle的示例代码,并没有改变任何东西。 当我使用此代码进行加密时,我得到了这个: private static byte[] EncryptFile(byte[] clearData, string fileName, PgpPublicKey encKey, bool withIntegrityCheck) { MemoryStream encOut = new MemoryStream(); try { MemoryStream bOut = new MemoryStream(); PgpCompressedDataGenerator comData = new PgpCompressedDataGenerator( CompressionAlgorithmTag.Zip ); //PgpUtilities.WriteFileToLiteralData( // comData.Open(bOut), // PgpLiteralData.Binary, // new FileInfo(fileName)); Stream cos = comData.Open(bOut); PgpLiteralDataGenerator lData = […]

使用BouncyCastle c#进行PgP加密和解密

我看过很多post,其中有一些教程,但似乎都没有。 有时,他们会引用一些未找到的类。 我是否可以指向一个可以获得简单教程的地方,该教程展示了如何加密和解密文件。 我对Pgp很新,欢迎任何帮助。

阅读C#和Bouncy Castle的RSA PrivateKey

我已成功使用OpenSSL格式写入公钥和私钥文件。 文件: —–BEGIN PUBLIC KEY—– MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpHCHYgawzNlxVebSKXL7vfc/i hP+dQgMxlaPEi7/vpQtV2szHjIP34MnUKelXFuIETJjOgjWAjTTJoj38MQUWc3u7 SRXaGVggqQEKH+cRi5+UcEObIfpi+cIyAm9MJqKabfJK2e5X/OS7FgAwPjgtDbZO ZxamOrWWL8KGB+lH+QIDAQAB —–END PUBLIC KEY—– —–BEGIN RSA PRIVATE KEY—– MIICXAIBAAKBgQCpHCHYgawzNlxVebSKXL7vfc/ihP+dQgMxlaPEi7/vpQtV2szH jIP34MnUKelXFuIETJjOgjWAjTTJoj38MQUWc3u7SRXaGVggqQEKH+cRi5+UcEOb Ifpi+cIyAm9MJqKabfJK2e5X/OS7FgAwPjgtDbZOZxamOrWWL8KGB+lH+QIDAQAB AoGBAIXtL6jFWVjdjlZrIl4JgXUtkDt21PD33IuiVKZNft4NOWLu+wp17/WZYn3S C2fbSXfaKZIycKi0K8Ab6zcUo0+QZKMoaG5GivnqqTPVAuZchkuMUSVgjGvKAC/D 12/b+w+Shs9pvqED1CxfvtePXNwL6ZNuaREFC5hF/YpMVyg5AkEA3BUCZYJ+Ec96 2cwsdY6HocW8Kn+RIqMjkNtyLA19cQV5mpIP7kAiW6drBDlraVANi+5AgK2zQ+ZT hYzs/JfRKwJBAMS1g5/B7XXnfC6VTRs8AMveZudi5wS/aGpaApybsfx1NTLLsm3l GmGTkbCr+EPzvJ5zRSIAHAA6N6NdORwzEWsCQHTli+JTD5dyNvScaDkAvbYFi06f d32IXYnBpcEUYT65A8BAOMn5ssYwBL23qf/ED431vLkcig1Ut6RGGFKKaQUCQEfa UdkSWm39/5N4f/DZyySs+YO90csfK8HlXRzdlnc0TRlf5K5VyHwqDkatmoMfzh9G 1dLknVXL7jTjQZA2az8CQG0jRSQ599zllylMPPVibW98701Mdhb1u20p1fAOkIrz +BNEdOPqPVIyqIP830nnFsJJgTG2eKB59ym+ypffRmA= —–END RSA PRIVATE KEY—– 公钥当然只包含公钥部分。 使用公钥加密我的消息后。 我想读取私钥文件并解密它,但它不起作用。 我正在尝试读取私钥,因为无法将对象强制转换为不对称密钥。 这是我的代码: public static AsymmetricKeyParameter ReadAsymmetricKeyParameter(string pemFilename) { var fileStream = System.IO.File.OpenText(pemFilename); var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(fileStream); var KeyParameter […]

需要C#中的BouncyCastle PGP文件加密示例

我正在尝试使用我的私钥(ascii格式)和任何其他公钥(也是ascii格式)加密文件。 BouncyCastle库看起来是正确的用法,但我找不到C#的文档。 有谁可以帮我一个例子。 谢谢。

仅使用Bouncy Castle阅读PEM RSA公钥

我正在尝试使用C#读取仅包含RSA公钥的.pem文件。 我无权访问私钥信息,我的应用程序也不需要它。 文件myprivatekey.pem文件以。开头 —–BEGIN PUBLIC KEY—–并以—–END PUBLIC KEY—– 。 我目前的代码如下: Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair; using (var reader = File.OpenText(@”c:\keys\myprivatekey.pem”)) keyPair = (Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject(); 但是,代码会抛出带有消息的InvalidCastException 无法将“Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters”类型的对象强制转换为“Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair”。 当没有私钥信息时,如何使用Bouncy Castle的PemReader只读取公钥?

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

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

转换椭圆曲线参数(BC到MS)

我正在尝试生成ECDSA自签名证书,如使用ECDSA生成证书中所述。 将所有来自bartonjs的答案放在一起并使用Net.Framework 4.7 (或Net.Core 2.0 )代码似乎正在起作用,尽管有一些含糊不清(至少有一个): 我不确定如何正确地将私钥(’D’参数)从BC-BigInteger为MS-byte[] 。 使用BigInteger.ToByteArray()抛出exception: CryptographicException :指定的键参数无效。 QX和QY是必填字段。 QX,QY必须长度相同。 如果指定了D,则它必须与命名曲线的QX和QY的长度相同,或者与显式曲线的Order的长度相同。 同时validationECParameters(方法ECParameters.Validate() )。 使用BigInteger.ToByteArrayUnsigned()可以提供更好的结果(几百个生成的密钥对失败),但仍然…… 当使用ToByteArray()转换’D’时通常长一个字节(’D’与DX相比有33个字节,而DY有32个字节)。 使用ToByteArrayUnsigned() ,’D’有时短一个字节。 所以我的问题是使用ToByteArrayUnsigned()是否可以。 private const string NCryptExportPolicyProperty = “Export Policy”; private const string SignatureAlgorithm = “Sha256WithECDSA”; private static readonly ECCurve MsCurve = ECCurve.NamedCurves.nistP256; private static readonly DerObjectIdentifier BcCurve = SecObjectIdentifiers.SecP256r1; // must correspond with MsCurve public static […]

使用C#中的Bouncy Castle加密/解密

我使用“BouncyCastle.Crypto.dll”来加密/解密我的应用程序中的字符串。 我正在使用此博客中的以下代码 : 我有一个BCEngine类,与上面提到的链接完全相同。 public class BCEngine { private readonly Encoding _encoding; private readonly IBlockCipher _blockCipher; private PaddedBufferedBlockCipher _cipher; private IBlockCipherPadding _padding; public BCEngine(IBlockCipher blockCipher, Encoding encoding) { _blockCipher = blockCipher; _encoding = encoding; } public void SetPadding(IBlockCipherPadding padding) { if (padding != null) _padding = padding; } public string Encrypt(string plain, string key) { […]