Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ VerifySign()

static bool Internal.NativeCrypto.CapiHelper.VerifySign ( SafeProvHandle hProv,
SafeKeyHandle hKey,
int calgKey,
int calgHash,
byte[] hash,
byte[] signature )
inlinestatic

Definition at line 1171 of file CapiHelper.cs.

1172 {
1173 switch (calgKey)
1174 {
1175 case 9216:
1176 signature = signature.CloneByteArray();
1177 Array.Reverse(signature);
1178 break;
1179 case 8704:
1180 signature = signature.CloneByteArray();
1181 ReverseDsaSignature(signature, signature.Length);
1182 break;
1183 default:
1184 throw new InvalidOperationException();
1185 }
1186 using SafeHashHandle safeHashHandle = hProv.CreateHashHandle(hash, calgHash, throwOnSizeError: false);
1187 if (safeHashHandle == null)
1188 {
1189 return false;
1190 }
1191 return global::Interop.Advapi32.CryptVerifySignature(safeHashHandle, signature, signature.Length, hKey, null, global::Interop.Advapi32.CryptSignAndVerifyHashFlags.None);
1192 }
static void ReverseDsaSignature(byte[] signature, int cbSignature)
static void Reverse(Array array)
Definition Array.cs:2207

References System.Array.Reverse(), and Internal.NativeCrypto.CapiHelper.ReverseDsaSignature().

Referenced by System.Security.Cryptography.RSACryptoServiceProvider.VerifyHash(), and System.Security.Cryptography.DSACryptoServiceProvider.VerifyHash().