Esempio n. 1
0
        private trafficMessage DecryptMessageAfterResponse(trafficMessage msgEncrypt)
        {
            trafficMessage msgSource = new trafficMessage();

            msgSource.transCode  = msgEncrypt.transCode;
            msgSource.merId      = msgEncrypt.merId;
            msgSource.extend     = msgEncrypt.extend;
            msgSource.encryptKey = CryptUtils.getStringFromBytes(CryptUtils.RSADecrypt(CryptUtils.getPrivateKeyXmlFromPFX(pfxFilePath, pfxPassword).PrivateKey.ToXmlString(true),
                                                                                       CryptUtils.Base64Decoder(msgEncrypt.encryptKey)), encodeCode);
            Console.WriteLine("Decrypted remote AESkey [" + msgSource.encryptKey + "]");
            //Console.WriteLine("encryptKey[" + msgSource.encryptKey + "]);

            byte[] sourceByte = CryptUtils.AESDecrypt(CryptUtils.Base64Decoder(msgEncrypt.encryptData),
                                                      msgSource.encryptKey);
            msgSource.encryptData = CryptUtils.getStringFromBytes(sourceByte, encodeCode);
            // Console.WriteLine("encryptData[" + msgSource.encryptData + "][" + msgEncrypt.encryptData + "]");

            msgSource.sign =
                CryptUtils.VerifySignWithPublicKey(
                    sourceByte,
                    CryptUtils.getPublicKeyXmlFromCer(cerFilePath),
                    CryptUtils.Base64Decoder(msgEncrypt.sign)
                    ).ToString();

            // Console.WriteLine("sign[" + msgSource.sign + "][" + msgEncrypt.sign + "]");
            //需要添加引用 System.Web
            return(msgSource);
        }
Esempio n. 2
0
        public trafficMessage CheckSignMessageAfterResponse(trafficMessage msgEncrypt)
        {
            trafficMessage msgSource = new trafficMessage();

            //获取报文字符集
            this.encodeCode = Encoding.GetEncoding(msgEncrypt.charset);
            log.Debug("Message Charset is [" + msgEncrypt.charset + "]");

            msgSource.charset  = msgEncrypt.charset;
            msgSource.signType = msgEncrypt.signType;
            msgSource.extend   = msgEncrypt.extend;
            msgSource.data     = msgEncrypt.data;

            msgSource.sign = CryptUtils.VerifySignWithPublicKey(
                (CryptUtils.getBytesFromString(msgEncrypt.data, encodeCode)),
                CryptUtils.getPublicKeyXmlFromCer(cerFilePath),
                CryptUtils.Base64Decoder(msgEncrypt.sign)
                ).ToString();

            log.Debug("sign[" + msgSource.sign + "][" + msgEncrypt.sign + "]");
            return(msgSource);
        }