forked from loafle/openapi-generator-original
[C#][restsharp] Removed warnings in HTTP signing config (#16128)
* Removed warnings in HTTP signing config for restsharp C# * fix
This commit is contained in:
@@ -26,7 +26,6 @@ namespace Org.OpenAPITools.Client
|
||||
/// </summary>
|
||||
public class HttpSigningConfiguration
|
||||
{
|
||||
#region
|
||||
/// <summary>
|
||||
/// Initialize the HashAlgorithm and SigningAlgorithm to default value
|
||||
/// </summary>
|
||||
@@ -35,9 +34,7 @@ namespace Org.OpenAPITools.Client
|
||||
HashAlgorithm = HashAlgorithmName.SHA256;
|
||||
SigningAlgorithm = "PKCS1-v15";
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
/// <summary>
|
||||
///Gets the Api keyId
|
||||
/// </summary>
|
||||
@@ -78,18 +75,13 @@ namespace Org.OpenAPITools.Client
|
||||
/// </summary>
|
||||
public int SignatureValidityPeriod { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region enum
|
||||
private enum PrivateKeyType
|
||||
{
|
||||
None = 0,
|
||||
RSA = 1,
|
||||
ECDSA = 2,
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
/// <summary>
|
||||
/// Gets the Headers for HttpSigning
|
||||
/// </summary>
|
||||
@@ -191,12 +183,12 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
if (HashAlgorithm == HashAlgorithmName.SHA256)
|
||||
{
|
||||
var bodyDigest = GetStringHash(HashAlgorithm.ToString(), requestBody);
|
||||
var bodyDigest = GetStringHash(HashAlgorithm, requestBody);
|
||||
Digest = string.Format("SHA-256={0}", Convert.ToBase64String(bodyDigest));
|
||||
}
|
||||
else if (HashAlgorithm == HashAlgorithmName.SHA512)
|
||||
{
|
||||
var bodyDigest = GetStringHash(HashAlgorithm.ToString(), requestBody);
|
||||
var bodyDigest = GetStringHash(HashAlgorithm, requestBody);
|
||||
Digest = string.Format("SHA-512={0}", Convert.ToBase64String(bodyDigest));
|
||||
}
|
||||
else
|
||||
@@ -264,7 +256,7 @@ namespace Org.OpenAPITools.Client
|
||||
}
|
||||
//Concatenate headers value separated by new line
|
||||
var headerValuesString = string.Join("\n", headerValuesList);
|
||||
var signatureStringHash = GetStringHash(HashAlgorithm.ToString(), headerValuesString);
|
||||
var signatureStringHash = GetStringHash(HashAlgorithm, headerValuesString);
|
||||
string headerSignatureStr = null;
|
||||
var keyType = GetKeyType(KeyString);
|
||||
|
||||
@@ -300,11 +292,27 @@ namespace Org.OpenAPITools.Client
|
||||
return HttpSignedRequestHeader;
|
||||
}
|
||||
|
||||
private byte[] GetStringHash(string hashName, string stringToBeHashed)
|
||||
private byte[] GetStringHash(HashAlgorithmName hashAlgorithmName, string stringToBeHashed)
|
||||
{
|
||||
var hashAlgorithm = System.Security.Cryptography.HashAlgorithm.Create(hashName);
|
||||
var bytes = Encoding.UTF8.GetBytes(stringToBeHashed);
|
||||
var stringHash = hashAlgorithm.ComputeHash(bytes);
|
||||
HashAlgorithm hashAlgorithm = null;
|
||||
|
||||
if (hashAlgorithmName == HashAlgorithmName.SHA1)
|
||||
hashAlgorithm = SHA1.Create();
|
||||
|
||||
if (hashAlgorithmName == HashAlgorithmName.SHA256)
|
||||
hashAlgorithm = SHA256.Create();
|
||||
|
||||
if (hashAlgorithmName == HashAlgorithmName.SHA512)
|
||||
hashAlgorithm = SHA512.Create();
|
||||
|
||||
if (hashAlgorithmName == HashAlgorithmName.MD5)
|
||||
hashAlgorithm = MD5.Create();
|
||||
|
||||
if (hashAlgorithm == null)
|
||||
throw new NullReferenceException($"{ nameof(hashAlgorithm) } was null.");
|
||||
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(stringToBeHashed);
|
||||
byte[] stringHash = hashAlgorithm.ComputeHash(bytes);
|
||||
return stringHash;
|
||||
}
|
||||
|
||||
@@ -669,7 +677,7 @@ namespace Org.OpenAPITools.Client
|
||||
Array.Copy(salt, 0, data00, psbytes.Length, salt.Length); //concatenate the salt bytes
|
||||
|
||||
// ---- do multi-hashing and concatenate results D1, D2 ... into keymaterial bytes ----
|
||||
MD5 md5 = new MD5CryptoServiceProvider();
|
||||
MD5 md5 = MD5.Create();
|
||||
byte[] result = null;
|
||||
byte[] hashtarget = new byte[HASHLENGTH + data00.Length]; //fixed length initial hashtarget
|
||||
|
||||
@@ -782,6 +790,5 @@ namespace Org.OpenAPITools.Client
|
||||
}
|
||||
return apiKeyString;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user