You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.4 KiB
64 lines
1.4 KiB
using System;
|
|
|
|
using Org.BouncyCastle.Asn1.Pkcs;
|
|
using Org.BouncyCastle.Asn1.X509;
|
|
using Org.BouncyCastle.Crypto;
|
|
using Org.BouncyCastle.Crypto.Generators;
|
|
using Org.BouncyCastle.Crypto.Parameters;
|
|
|
|
namespace Org.BouncyCastle.Cms
|
|
{
|
|
/**
|
|
* PKCS5 scheme-2 - password converted to bytes using UTF-8.
|
|
*/
|
|
public class Pkcs5Scheme2Utf8PbeKey
|
|
: CmsPbeKey
|
|
{
|
|
[Obsolete("Use version taking 'char[]' instead")]
|
|
public Pkcs5Scheme2Utf8PbeKey(
|
|
string password,
|
|
byte[] salt,
|
|
int iterationCount)
|
|
: this(password.ToCharArray(), salt, iterationCount)
|
|
{
|
|
}
|
|
|
|
[Obsolete("Use version taking 'char[]' instead")]
|
|
public Pkcs5Scheme2Utf8PbeKey(
|
|
string password,
|
|
AlgorithmIdentifier keyDerivationAlgorithm)
|
|
: this(password.ToCharArray(), keyDerivationAlgorithm)
|
|
{
|
|
}
|
|
|
|
public Pkcs5Scheme2Utf8PbeKey(
|
|
char[] password,
|
|
byte[] salt,
|
|
int iterationCount)
|
|
: base(password, salt, iterationCount)
|
|
{
|
|
}
|
|
|
|
public Pkcs5Scheme2Utf8PbeKey(
|
|
char[] password,
|
|
AlgorithmIdentifier keyDerivationAlgorithm)
|
|
: base(password, keyDerivationAlgorithm)
|
|
{
|
|
}
|
|
|
|
internal override KeyParameter GetEncoded(
|
|
string algorithmOid)
|
|
{
|
|
Pkcs5S2ParametersGenerator gen = new Pkcs5S2ParametersGenerator();
|
|
|
|
gen.Init(
|
|
PbeParametersGenerator.Pkcs5PasswordToUtf8Bytes(password),
|
|
salt,
|
|
iterationCount);
|
|
|
|
return (KeyParameter) gen.GenerateDerivedParameters(
|
|
algorithmOid,
|
|
CmsEnvelopedHelper.Instance.GetKeySize(algorithmOid));
|
|
}
|
|
}
|
|
}
|
|
|