The CryptoKey class / Examples |
Load the Diffie-Hellman parameters from a PEM file, the other peer's public key from an XML file and compute the shared secret.
Function generateKey is called with a 0, parameters are already filled.
FUNCTION BuildSharedSecret(DHdoc) DEFINE myKey, othersPubKey, sharedSecret xml.CryptoKey DEFINE DHdoc xml.DomDocument LET myKey = xml.CryptoKey.Create("http://www.w3.org/2001/04/xmlenc#DHKeyValue") LET othersPubKey = xml.CryptoKey.Create("http://www.w3.org/2001/04/xmlenc#DHKeyValue " ) TRY CALL othersPubKey.loadPublic(DHdoc) # populate myKey with the parameters previously generated by the # other peer. CALL myKey.loadPEM("DHParam.pem") # Randomly generate a private key and compute the public key. Key # length is the parameters length. CALL myKey.generateKey(0) LET sharedSecret = myKey.computeKey(othersPubKey, "http://www.w3.org/2000/09/xmldsig#hmac-sha1") CATCH DISPLAY "ERROR : should not raise exception” EXIT PROGRAM (-1) END TRY END FUNCTION