Sample code for 30+ languages & platforms
SQL Server

URL Signing for Google Maps API

See more Encryption Examples

Demonstrates how to sign a URL for the Google Maps API.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    -- This example assumes the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    DECLARE @crypt int
    EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- The output will be modified Base64.
    -- Modified Base64 for URLs replaces the '+' and '/' characters 
    -- of standard Base64 with '-' and '_' respectively, so that these 
    -- Base64 signatures no longer need to be URL-encoded.
    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'modBase64'

    -- Set the hash algorithm to sha-1
    EXEC sp_OASetProperty @crypt, 'HashAlgorithm', 'sha-1'
    EXEC sp_OASetProperty @crypt, 'MacAlgorithm', 'hmac'

    DECLARE @sig nvarchar(4000)

    -- Set the HMAC key (this is the private key provided by Google)
    DECLARE @success int
    EXEC sp_OAMethod @crypt, 'SetMacKeyEncoded', @success OUT, 'vNIXE0xscrmjlyV-12Nj_BvUPaw=', 'modBase64'

    -- Compute the URL signature
    EXEC sp_OAMethod @crypt, 'MacStringENC', @sig OUT, '/maps/api/geocode/json?address=New+York&sensor=false&client=clientID'

    -- The result should be KrU1TzVQM7Ur0i8i7K3huiw3MsA=

    PRINT @sig

    EXEC @hr = sp_OADestroy @crypt


END
GO