init commit

This commit is contained in:
2025-10-09 09:57:24 +09:00
commit 4d551bd74f
6636 changed files with 1218703 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
using System;
using System.IO;
using Org.BouncyCastle.Asn1.Pkcs;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.Utilities.IO;
namespace Org.BouncyCastle.Pkcs;
public class Pkcs8EncryptedPrivateKeyInfo
{
private EncryptedPrivateKeyInfo encryptedPrivateKeyInfo;
private static EncryptedPrivateKeyInfo parseBytes(byte[] pkcs8Encoding)
{
try
{
return EncryptedPrivateKeyInfo.GetInstance(pkcs8Encoding);
}
catch (ArgumentException ex)
{
throw new PkcsIOException("malformed data: " + ex.Message, ex);
}
catch (Exception ex2)
{
throw new PkcsIOException("malformed data: " + ex2.Message, ex2);
}
}
public Pkcs8EncryptedPrivateKeyInfo(EncryptedPrivateKeyInfo encryptedPrivateKeyInfo)
{
this.encryptedPrivateKeyInfo = encryptedPrivateKeyInfo;
}
public Pkcs8EncryptedPrivateKeyInfo(byte[] encryptedPrivateKeyInfo)
: this(parseBytes(encryptedPrivateKeyInfo))
{
}
public EncryptedPrivateKeyInfo ToAsn1Structure()
{
return encryptedPrivateKeyInfo;
}
public byte[] GetEncryptedData()
{
return encryptedPrivateKeyInfo.GetEncryptedData();
}
public byte[] GetEncoded()
{
return encryptedPrivateKeyInfo.GetEncoded();
}
public PrivateKeyInfo DecryptPrivateKeyInfo(IDecryptorBuilderProvider inputDecryptorProvider)
{
try
{
ICipherBuilder cipherBuilder = inputDecryptorProvider.CreateDecryptorBuilder(encryptedPrivateKeyInfo.EncryptionAlgorithm);
ICipher cipher = cipherBuilder.BuildCipher(new MemoryInputStream(encryptedPrivateKeyInfo.GetEncryptedData()));
Stream stream = cipher.Stream;
byte[] obj = Streams.ReadAll(cipher.Stream);
Platform.Dispose(stream);
return PrivateKeyInfo.GetInstance(obj);
}
catch (Exception ex)
{
throw new PkcsException("unable to read encrypted data: " + ex.Message, ex);
}
}
}