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,113 @@
using System;
using System.Text;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Crypto;
public abstract class PbeParametersGenerator
{
protected byte[] mPassword;
protected byte[] mSalt;
protected int mIterationCount;
public virtual byte[] Password => Arrays.Clone(mPassword);
public virtual byte[] Salt => Arrays.Clone(mSalt);
public virtual int IterationCount => mIterationCount;
public virtual void Init(byte[] password, byte[] salt, int iterationCount)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
if (salt == null)
{
throw new ArgumentNullException("salt");
}
mPassword = Arrays.Clone(password);
mSalt = Arrays.Clone(salt);
mIterationCount = iterationCount;
}
[Obsolete("Use 'Password' property")]
public byte[] GetPassword()
{
return Password;
}
[Obsolete("Use 'Salt' property")]
public byte[] GetSalt()
{
return Salt;
}
[Obsolete("Use version with 'algorithm' parameter")]
public abstract ICipherParameters GenerateDerivedParameters(int keySize);
public abstract ICipherParameters GenerateDerivedParameters(string algorithm, int keySize);
[Obsolete("Use version with 'algorithm' parameter")]
public abstract ICipherParameters GenerateDerivedParameters(int keySize, int ivSize);
public abstract ICipherParameters GenerateDerivedParameters(string algorithm, int keySize, int ivSize);
public abstract ICipherParameters GenerateDerivedMacParameters(int keySize);
public static byte[] Pkcs5PasswordToBytes(char[] password)
{
if (password == null)
{
return new byte[0];
}
return Strings.ToByteArray(password);
}
[Obsolete("Use version taking 'char[]' instead")]
public static byte[] Pkcs5PasswordToBytes(string password)
{
if (password == null)
{
return new byte[0];
}
return Strings.ToByteArray(password);
}
public static byte[] Pkcs5PasswordToUtf8Bytes(char[] password)
{
if (password == null)
{
return new byte[0];
}
return Encoding.UTF8.GetBytes(password);
}
[Obsolete("Use version taking 'char[]' instead")]
public static byte[] Pkcs5PasswordToUtf8Bytes(string password)
{
if (password == null)
{
return new byte[0];
}
return Encoding.UTF8.GetBytes(password);
}
public static byte[] Pkcs12PasswordToBytes(char[] password)
{
return Pkcs12PasswordToBytes(password, wrongPkcs12Zero: false);
}
public static byte[] Pkcs12PasswordToBytes(char[] password, bool wrongPkcs12Zero)
{
if (password == null || password.Length < 1)
{
return new byte[wrongPkcs12Zero ? 2 : 0];
}
byte[] array = new byte[(password.Length + 1) * 2];
Encoding.BigEndianUnicode.GetBytes(password, 0, password.Length, array, 0);
return array;
}
}