|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (PowerShell) ECDSA Sign Data and Verify SignatureDemonstrates using the Elliptic Curve Digital Signature Algorithm to hash data and sign it. Also demonstrates how to verify the ECDSA signature. 
 Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # To create an ECDSA signature, the data first needs to be hashed. Then the hash # is signed. # Use Chilkat Crypt2 to generate a hash for any of the following # hash algorithms: SHA256, SHA384, SHA512, SHA1, MD5, MD2, HAVAL, RIPEMD128/160/256/320 $crypt = New-Object Chilkat.Crypt2 $crypt.HashAlgorithm = "SHA256" $crypt.Charset = "utf-8" $crypt.EncodingMode = "base64" # Hash a string. $hash1 = $crypt.HashStringENC("The quick brown fox jumps over the lazy dog") $("hash1 = " + $hash1) # Or hash a file.. $hash2 = $crypt.HashFileENC("qa_data/hamlet.xml") $("hash2 = " + $hash2) # (The Crypt2 API provides many other ways to hash data..) # ----------------------------------------------------------- # An ECDSA private key is used for signing. The public key is for signature verification. # Load our ECC private key. # Our private key file contains this: # // -----BEGIN PRIVATE KEY----- # MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3J8q/24D1sEKGdP9 # 72MGYElLGpw/a56Y3t6pfON3uhShRANCAATlSmoizyhAwoYZAOuFBATl07/1RR54 # a1Dzfm16grxJe666AGKR+bSs24hk7TEpaeCTvT8YOOM3l+xKFg7zq6Q9 # -----END PRIVATE KEY----- $privKey = New-Object Chilkat.PrivateKey $success = $privKey.LoadPemFile("qa_data/ecc/secp256r1-key-pkcs8.pem") if ($success -ne $true) { $($privKey.LastErrorText) exit } # We'll need a PRNG source for random number generation. # Use Chilkat's PRNG (for the Fortuna PRNG algorithm). $prng = New-Object Chilkat.Prng # Sign the hash.. $ecdsa = New-Object Chilkat.Ecc $ecdsaSigBase64 = $ecdsa.SignHashENC($hash1,"base64",$privKey,$prng) if ($ecdsa.LastMethodSuccess -ne $true) { $($ecdsa.LastErrorText) exit } $("ECDSA signature = " + $ecdsaSigBase64) # ----------------------------------------------------------- # Now let's verify the signature using the public key. $pubKey = New-Object Chilkat.PublicKey $success = $pubKey.LoadFromFile("qa_data/ecc/secp256r1-pubkey.pem") if ($success -ne $true) { $($pubKey.LastErrorText) exit } $result = $ecdsa.VerifyHashENC($hash1,$ecdsaSigBase64,"base64",$pubKey) if ($result -eq 1) { $("Signature is valid.") exit } if ($result -eq 0) { $("Signature is invalid.") exit } if ($result -lt 0) { $($ecdsa.LastErrorText) $("The VerifyHashENC method call failed.") exit } | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.