Sample code for 30+ languages & platforms
PureBasic

URL Signing for Google Maps API

See more Encryption Examples

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

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCrypt2.pb"

Procedure ChilkatExample()

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    crypt.i = CkCrypt2::ckCreate()
    If crypt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; 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.
    CkCrypt2::setCkEncodingMode(crypt, "modBase64")

    ; Set the hash algorithm to sha-1
    CkCrypt2::setCkHashAlgorithm(crypt, "sha-1")
    CkCrypt2::setCkMacAlgorithm(crypt, "hmac")

    sig.s

    ; Set the HMAC key (this is the private key provided by Google)
    CkCrypt2::ckSetMacKeyEncoded(crypt,"vNIXE0xscrmjlyV-12Nj_BvUPaw=","modBase64")

    ; Compute the URL signature
    sig = CkCrypt2::ckMacStringENC(crypt,"/maps/api/geocode/json?address=New+York&sensor=false&client=clientID")

    ; The result should be KrU1TzVQM7Ur0i8i7K3huiw3MsA=
    Debug sig


    CkCrypt2::ckDispose(crypt)


    ProcedureReturn
EndProcedure