69 lines
1.1 KiB
C#
69 lines
1.1 KiB
C#
using System;
|
|
|
|
using Org.BouncyCastle.Crypto;
|
|
using Org.BouncyCastle.Crypto.Parameters;
|
|
using Org.BouncyCastle.Utilities;
|
|
|
|
//import javax.crypto.interfaces.PBEKey;
|
|
|
|
namespace Org.BouncyCastle.Cms
|
|
{
|
|
public abstract class CmsPbeKey
|
|
// TODO Create an equivalent interface somewhere?
|
|
// : PBEKey
|
|
: ICipherParameters
|
|
{
|
|
private readonly string password;
|
|
private readonly byte[] salt;
|
|
private readonly int iterationCount;
|
|
|
|
public CmsPbeKey(
|
|
string password,
|
|
byte[] salt,
|
|
int iterationCount)
|
|
{
|
|
this.password = password;
|
|
this.salt = Arrays.Clone(salt);
|
|
this.iterationCount = iterationCount;
|
|
}
|
|
|
|
public string Password
|
|
{
|
|
get { return password; }
|
|
}
|
|
|
|
public byte[] Salt
|
|
{
|
|
get { return Arrays.Clone(salt); }
|
|
}
|
|
|
|
[Obsolete("Use 'Salt' property instead")]
|
|
public byte[] GetSalt()
|
|
{
|
|
return Salt;
|
|
}
|
|
|
|
public int IterationCount
|
|
{
|
|
get { return iterationCount; }
|
|
}
|
|
|
|
public string Algorithm
|
|
{
|
|
get { return "PKCS5S2"; }
|
|
}
|
|
|
|
public string Format
|
|
{
|
|
get { return "RAW"; }
|
|
}
|
|
|
|
public byte[] GetEncoded()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
internal abstract KeyParameter GetEncoded(string algorithmOid);
|
|
}
|
|
}
|