/// <summary> /// Зашифровать идентификатор OID параметров шифрования. /// </summary> public static byte[] EncodeEncryptionParamSet(string encryptionParamSet) { if (encryptionParamSet == null) { throw ExceptionUtility.ArgumentNull(nameof(encryptionParamSet)); } byte[] data; try { var parameters = new Gost_28147_89_BlobParams { EncryptionParamSet = Gost_28147_89_ParamSet.FromString(encryptionParamSet) }; var asnEncoder = new Asn1BerEncodeBuffer(); parameters.Encode(asnEncoder); data = asnEncoder.MsgCopy; } catch (Exception exception) { throw ExceptionUtility.CryptographicException(exception, Resources.Asn1EncodeError, nameof(Gost_28147_89_BlobParams)); } return(data); }
/// <summary> /// Расшифровать идентификатор OID параметров шифрования. /// </summary> public static string DecodeEncryptionParamSet(byte[] data) { if (data == null) { throw ExceptionUtility.ArgumentNull(nameof(data)); } string encryptionParamSet; try { var asnDecoder = new Asn1BerDecodeBuffer(data); var parameters = new Gost_28147_89_BlobParams(); parameters.Decode(asnDecoder); encryptionParamSet = parameters.EncryptionParamSet.Oid.Value; } catch (Exception exception) { throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, typeof(Gost_28147_89_BlobParams).FullName); } return(encryptionParamSet); }