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.
68 lines
1.6 KiB
68 lines
1.6 KiB
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR) |
|
#pragma warning disable |
|
using System; |
|
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs; |
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; |
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; |
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators; |
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters; |
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms |
|
{ |
|
/** |
|
* PKCS5 scheme-2 - password converted to bytes using UTF-8. |
|
*/ |
|
public class Pkcs5Scheme2Utf8PbeKey |
|
: CmsPbeKey |
|
{ |
|
|
|
public Pkcs5Scheme2Utf8PbeKey( |
|
string password, |
|
byte[] salt, |
|
int iterationCount) |
|
: this(password.ToCharArray(), salt, iterationCount) |
|
{ |
|
} |
|
|
|
|
|
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)); |
|
} |
|
} |
|
} |
|
#pragma warning restore |
|
#endif
|
|
|