cloudstack-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Blake Ferkingstad <bferkings...@acentek.net>
Subject API Signing Issue
Date Mon, 30 Mar 2015 15:17:23 GMT
Hello everyone,



I have a question on my API Signing code. The code below I have tested on commands like createDomain,
listTemplates, and listServices. Those all run like expected, but I am running into trouble
with createAccount.



function cloudstack_sign_sort($cmd)

{

  $commands = explode('&', $cmd);

  sort($commands);

  $sort = implode('&', $commands);



  return $sort;

}



function cloudstack_formatCmd($api, $cmd) {

  $str = 'apiKey=' . $api . '&' . $cmd;

  $str = strtolower(cloudstack_sign_sort($str));



  return $str;

}



function cloudstack_encrypt($cmd, $secret) {

  $hash = hash_hmac('sha1', $cmd, $secret, true);

  $hash = base64_encode($hash);



  return urlencode($hash);

}



function cloudstack_formattedUrl($baseUrl, $api, $cmd, $signature) {

  $url = $baseUrl . '?' . $cmd . '&apiKey=' . $api . '&signature=' . $signature;



  return $url;

}



function cloudstack_sign($command, $api, $secret, $baseUrl) {

    $clean_command = substr($command, strpos($command, '?'));



    $newCmd = cloudstack_formatCmd($api, $clean_command);

    $signature = cloudstack_encrypt($newCmd, $secret);

    $url = cloudstack_formattedUrl($baseUrl, $api, $clean_command, $signature);



    return $url;

}



When I run the command it returns for createAccount I get 'Error: 401unable to verify user
credentials and/or request signature'.



Is there something wrong with my code?



Thanks,

Blake Ferkingstad


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message