Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Ed25519 Sign and VerifyDemonstrates how to create an Ed25519 signature, and then to verify it. Note: This example requires Chilkat v9.5.0.83 or greater.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @privKeyHex nvarchar(4000) SELECT @privKeyHex = '1498b5467a63dffa2dc9d9e069caf075d16fc33fdd4c3b01bfadae6433767d93' DECLARE @pubKeyHex nvarchar(4000) SELECT @pubKeyHex = 'b7a3c12dc0c8c748ab07525b701122b88bd78f600c76342d27f25e5f92444cde' DECLARE @privKey int -- Use "Chilkat_9_5_0.PrivateKey" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.PrivateKey', @privKey OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- This example shows only one way of loading an Ed25519 private key. -- Chilkat can load other formats (JWK, PEM, ASN.1 DER, etc.) -- You may do so by calling LoadAnyFormat or LoadAnyFormatFile. DECLARE @success int EXEC sp_OAMethod @privKey, 'LoadEd25519', @success OUT, @privKeyHex, @pubKeyHex IF @success = 0 BEGIN EXEC sp_OAGetProperty @privKey, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @privKey RETURN END -- The data to be signed... DECLARE @bd int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @bd OUT EXEC sp_OAMethod @bd, 'AppendString', @success OUT, 'Message for Ed25519 signing', 'utf-8' DECLARE @eddsa int -- Use "Chilkat_9_5_0.EdDSA" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.EdDSA', @eddsa OUT DECLARE @hexSig nvarchar(4000) EXEC sp_OAMethod @eddsa, 'SignBdENC', @hexSig OUT, @bd, 'hexlower', @privKey PRINT 'signature = ' + @hexSig -- The expected output is: 6dd355667fae4eb43c6e0ab92e870edb2de0a88cae12dbd8591507f584fe4912babff497f1b8edf9567d2483d54ddc6459bea7855281b7a246a609e3001a4e08 -- Verify the signature.. DECLARE @pubKey int -- Use "Chilkat_9_5_0.PublicKey" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.PublicKey', @pubKey OUT EXEC sp_OAMethod @pubKey, 'LoadEd25519', @success OUT, @pubKeyHex IF @success = 0 BEGIN EXEC sp_OAGetProperty @pubKey, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @privKey EXEC @hr = sp_OADestroy @bd EXEC @hr = sp_OADestroy @eddsa EXEC @hr = sp_OADestroy @pubKey RETURN END DECLARE @bVerified int EXEC sp_OAMethod @eddsa, 'VerifyBdENC', @bVerified OUT, @bd, @hexSig, 'hexlower', @pubKey IF @bVerified = 0 BEGIN EXEC sp_OAGetProperty @eddsa, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 PRINT 'Failed to verify the signature.' EXEC @hr = sp_OADestroy @privKey EXEC @hr = sp_OADestroy @bd EXEC @hr = sp_OADestroy @eddsa EXEC @hr = sp_OADestroy @pubKey RETURN END PRINT 'The Ed25519 signature is verified!' EXEC @hr = sp_OADestroy @privKey EXEC @hr = sp_OADestroy @bd EXEC @hr = sp_OADestroy @eddsa EXEC @hr = sp_OADestroy @pubKey END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.