Esempio n. 1
0
        /// <summary>
        /// Проверка подписи ответа
        /// </summary>
        /// <param name="src"></param>
        /// <param name="pubkey"></param>
        /// <param name="serial"></param>
        public static void VerifyMessage(string src, string pubkey, string serial)
        {
            IPrivKey PublicKey = null;

            IPriv.Initialize();
            PublicKey = IPriv.openPublicKey(pubkey, Convert.ToUInt32(serial));

            // Проверить подпись
            PublicKey.verifyText(src);

            // Закрыть крипто-провайдер
            PublicKey.closeKey();
            IPriv.Done();
        }
Esempio n. 2
0
        /// <summary>
        /// Подписать сообщение в строке в кодировке 1251
        /// </summary>
        /// <param name="src">Исходное сообщение в кодировке UTF-8</param>
        /// <param name="trg">Сообщение в кодировке 1251 упакованное UrlEncode</param>
        /// <param name="s_text">Сообщение с подписью в кодировке UTF-8 (для лога)</param>
        /// <returns>0 - OK; 1 - ошибка криптопровайдера; -1 - системная ошибка</returns>
        public static void SignMessage(string src, out string trg, out string s_text,
                                       string secret, string passwd)
        {
            trg    = "";
            s_text = "";
            IPrivKey SecretKey = null;

            if (string.IsNullOrEmpty(src))
            {
                throw new IPrivException(-101);
            }

            IPriv.Initialize();
            SecretKey = IPriv.openSecretKey(secret, passwd);

            // Подписать сообщение в кодировке 1251
            s_text = SecretKey.signText(src);

            // Закрыть крипто-провайдер
            SecretKey.closeKey();
            IPriv.Done();

            trg = "inputmessage=" + HttpUtility.UrlEncode(s_text, Encoding.GetEncoding(1251));
        }