forked from loafle/openapi-generator-original
Fixed bug in http signing config for C# restsharp (#16129)
This commit is contained in:
@@ -341,6 +341,10 @@ namespace {{packageName}}.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
|
{{#net60OrLater}}
|
||||||
|
if (!File.Exists(KeyFilePath))
|
||||||
|
throw new Exception("key file path does not exist.");
|
||||||
|
|
||||||
var keyStr = KeyString;
|
var keyStr = KeyString;
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
||||||
@@ -348,7 +352,6 @@ namespace {{packageName}}.Client
|
|||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
||||||
var ecdsa = ECDsa.Create();
|
var ecdsa = ECDsa.Create();
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
var byteCount = 0;
|
||||||
if (KeyPassPhrase != null)
|
if (KeyPassPhrase != null)
|
||||||
{
|
{
|
||||||
@@ -368,17 +371,17 @@ namespace {{packageName}}.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
var signedBytes = ecdsa.SignHash(dataToSign);
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
var signedString = System.Convert.ToBase64String(derBytes);
|
||||||
|
|
||||||
return signedString;
|
return signedString;
|
||||||
#else
|
{{/net60OrLater}}
|
||||||
|
{{^net60OrLater}}
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
{{/net60OrLater}}
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,6 +349,9 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
|
if (!File.Exists(KeyFilePath))
|
||||||
|
throw new Exception("key file path does not exist.");
|
||||||
|
|
||||||
var keyStr = KeyString;
|
var keyStr = KeyString;
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
||||||
@@ -356,7 +359,6 @@ namespace Org.OpenAPITools.Client
|
|||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
||||||
var ecdsa = ECDsa.Create();
|
var ecdsa = ECDsa.Create();
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
var byteCount = 0;
|
||||||
if (KeyPassPhrase != null)
|
if (KeyPassPhrase != null)
|
||||||
{
|
{
|
||||||
@@ -376,17 +378,13 @@ namespace Org.OpenAPITools.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
var signedBytes = ecdsa.SignHash(dataToSign);
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
var signedString = System.Convert.ToBase64String(derBytes);
|
||||||
|
|
||||||
return signedString;
|
return signedString;
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,44 +349,7 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
var keyStr = KeyString;
|
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
|
||||||
var ecKeyBase64String = keyStr.Replace(ecKeyHeader, "").Replace(ecKeyFooter, "").Trim();
|
|
||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
|
||||||
var ecdsa = ECDsa.Create();
|
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
|
||||||
if (KeyPassPhrase != null)
|
|
||||||
{
|
|
||||||
IntPtr unmanagedString = IntPtr.Zero;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// convert secure string to byte array
|
|
||||||
unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(KeyPassPhrase);
|
|
||||||
ecdsa.ImportEncryptedPkcs8PrivateKey(Encoding.UTF8.GetBytes(Marshal.PtrToStringUni(unmanagedString)), keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (unmanagedString != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Marshal.ZeroFreeBSTR(unmanagedString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
|
||||||
|
|
||||||
return signedString;
|
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
@@ -349,6 +349,9 @@ namespace Org.OpenAPITools.Client
|
|||||||
/// <returns>ECDSA signature</returns>
|
/// <returns>ECDSA signature</returns>
|
||||||
private string GetECDSASignature(byte[] dataToSign)
|
private string GetECDSASignature(byte[] dataToSign)
|
||||||
{
|
{
|
||||||
|
if (!File.Exists(KeyFilePath))
|
||||||
|
throw new Exception("key file path does not exist.");
|
||||||
|
|
||||||
var keyStr = KeyString;
|
var keyStr = KeyString;
|
||||||
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
const string ecKeyHeader = "-----BEGIN EC PRIVATE KEY-----";
|
||||||
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
const string ecKeyFooter = "-----END EC PRIVATE KEY-----";
|
||||||
@@ -356,7 +359,6 @@ namespace Org.OpenAPITools.Client
|
|||||||
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
var keyBytes = System.Convert.FromBase64String(ecKeyBase64String);
|
||||||
var ecdsa = ECDsa.Create();
|
var ecdsa = ECDsa.Create();
|
||||||
|
|
||||||
#if (NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0)
|
|
||||||
var byteCount = 0;
|
var byteCount = 0;
|
||||||
if (KeyPassPhrase != null)
|
if (KeyPassPhrase != null)
|
||||||
{
|
{
|
||||||
@@ -376,17 +378,13 @@ namespace Org.OpenAPITools.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
ecdsa.ImportPkcs8PrivateKey(keyBytes, out byteCount);
|
||||||
}
|
|
||||||
var signedBytes = ecdsa.SignHash(dataToSign);
|
var signedBytes = ecdsa.SignHash(dataToSign);
|
||||||
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
var derBytes = ConvertToECDSAANS1Format(signedBytes);
|
||||||
var signedString = System.Convert.ToBase64String(derBytes);
|
var signedString = System.Convert.ToBase64String(derBytes);
|
||||||
|
|
||||||
return signedString;
|
return signedString;
|
||||||
#else
|
|
||||||
throw new Exception("ECDSA signing is supported only on NETCOREAPP3_0 and above");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
private byte[] ConvertToECDSAANS1Format(byte[] signedBytes)
|
||||||
|
|||||||
Reference in New Issue
Block a user