I\'m trying to test this example that I found here so that I can do a direct upload on the client side without having the user login using Google Cloud Storage.
All
First, you need to use openssl_pkcs12_read to read the key file, not file_get_contents. Second, I believe you want to leave off the second parameter to openssl_get_privatekey.
I highly recommend you use google-api-php-client for this, which has Google_P12Signer.php
The safer way is to use Google_Signer_P12 class shipped with Google API PHP client to do that.
Code sample:
set_include_path(get_include_path() . PATH_SEPARATOR . 'PATH/TO/API/src');
require_once 'Google/Signer/P12.php';
$p12contents = file_get_contents('FILE.p12');
$googleSigner = new Google_Signer_P12($p12contents, 'notasecret');
$signature = $googleSigner->sign($data);