/// <summary> /// Декодирование ASN.1 структуры параметров шифрования. /// </summary> /// /// <param name="data">ASN.1 закодированные параметры /// шифровыания.</param> /// /// <returns>Строковое представление OID шифрования.</returns> /// /// <argnull name="data" /> /// <exception cref="CryptographicException">При ошибках /// декодирования исходной структуры.</exception> public static string DecodeGost28147_89_BlobParameters( byte[] data) { if (data == null) { throw new ArgumentNullException("data"); } Asn1BerDecodeBuffer buffer = new Asn1BerDecodeBuffer(data); Gost28147_89_BlobParameters asnParams = new Gost28147_89_BlobParameters(); asnParams.Decode(buffer); return(ToString(asnParams.encryptionParamSet)); }
/// <summary> /// ASN.1 кодирование структуры параметров шифрования. /// </summary> /// /// <param name="parameters">OID параметров шифрования.</param> /// /// <returns>Закодированная ASN.1 структура.</returns> /// /// <argnull name="parameters" /> /// <exception cref="CryptographicException">При ошибках /// кодирования структуры.</exception> public static byte[] EncodeGost28147_89_BlobParameters( string parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } Asn1BerEncodeBuffer buffer = new Asn1BerEncodeBuffer(); Gost28147_89_BlobParameters asnParams = new Gost28147_89_BlobParameters(); asnParams.encryptionParamSet = CreateGost28147_89_ParamSet(parameters); asnParams.Encode(buffer); return(buffer.MsgCopy); }