Org.BouncyCastle.Cms.CmsEnvelopedHelper.CmsEnvelopedSecureReadable.GetReadable C# (CSharp) Method

GetReadable() public method

public GetReadable ( KeyParameter sKey ) : CmsReadable
sKey Org.BouncyCastle.Crypto.Parameters.KeyParameter
return CmsReadable
			public CmsReadable GetReadable(KeyParameter sKey)
			{
				try
				{
					this.cipher =  CipherUtilities.GetCipher(this.algorithm.ObjectID);

					Asn1Encodable asn1Enc = this.algorithm.Parameters;
					Asn1Object asn1Params = asn1Enc == null ? null : asn1Enc.ToAsn1Object();

					ICipherParameters cipherParameters = sKey;

					if (asn1Params != null && !(asn1Params is Asn1Null))
					{
						cipherParameters = ParameterUtilities.GetCipherParameters(
							this.algorithm.ObjectID, cipherParameters, asn1Params);
					}
					else
					{
						string alg = this.algorithm.ObjectID.Id;
						if (alg.Equals(CmsEnvelopedDataGenerator.DesEde3Cbc)
							|| alg.Equals(CmsEnvelopedDataGenerator.IdeaCbc)
							|| alg.Equals(CmsEnvelopedDataGenerator.Cast5Cbc))
						{
							cipherParameters = new ParametersWithIV(cipherParameters, new byte[8]);
						}
					}

					cipher.Init(false, cipherParameters);
				}
				catch (SecurityUtilityException e)
				{
					throw new CmsException("couldn't create cipher.", e);
				}
				catch (InvalidKeyException e)
				{
					throw new CmsException("key invalid in message.", e);
				}
				catch (IOException e)
				{
					throw new CmsException("error decoding algorithm parameters.", e);
				}

				try
				{
					return new CmsProcessableInputStream(
						new CipherStream(readable.GetInputStream(), cipher, null));
				}
				catch (IOException e)
				{
					throw new CmsException("error reading content.", e);
				}
			}
		}
CmsEnvelopedHelper.CmsEnvelopedSecureReadable