From a006582c49cdff81727224967f6b073f6ce3948e Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Fri, 26 Nov 2021 01:43:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(tenpayv3):=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=9C=BA=E6=99=AF=E4=B8=8B=20RSA=20=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=95=8F=E6=84=9F=E4=BF=A1=E6=81=AF=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Utilities/Internal/ReflectionUtility.cs | 6 +++++- .../Utilities/RSAUtility.cs | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/Internal/ReflectionUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/Internal/ReflectionUtility.cs index e0a0a481..72ae6d2f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/Internal/ReflectionUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/Internal/ReflectionUtility.cs @@ -120,7 +120,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities Type propType = childProp.PropertyType; if (propType == typeof(string)) { - string oldValue = (string)childProp.GetValue(obj, null)!; + object? value = childProp.GetValue(obj, null); + if (value is null) + continue; + + string oldValue = (string)value!; string newValue = replacement(obj, childProp, oldValue); childProp.SetValue(obj, newValue); } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/RSAUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/RSAUtility.cs index 060ec4c5..730a348f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/RSAUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Utilities/RSAUtility.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using Org.BouncyCastle.Crypto; @@ -16,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities public static class RSAUtility { // REF: https://github.com/bcgit/bc-csharp/blob/master/crypto/src/security/CipherUtilities.cs - private const string RSA_CIPHER_ALG = "RSA/ECB/PKCS1"; + private const string RSA_CIPHER_ALG = "RSA/ECB/OAEPWITHSHA1ANDMGF1PADDING"; // REF: https://github.com/bcgit/bc-csharp/blob/master/crypto/src/security/SignerUtilities.cs private const string RSA_SIGNER_ALG = "SHA-256withRSA";