Need a Python library for generating WSSE headers for API calls
$250-750 CAD
Paid on delivery
Our API requires WSSE headers to communicate with the server. We presently have generators written in Java, PHP, C# and JavaScript. All produce the same output. We now want to add Python to the list.
What we want out of this project:
1- A code library that customers can integrate into their own projects
2- Unit tests to confirm the code is working as expected
3- Documentation explaining how the code works
The following information is needed to generate a WSSE header:
1- The name of the customer as it appears in the software;
2- A nonce, which is a random string generated by you. This string must be different with each request;
The current date & time in UTC-0. See [login to view URL] for more information;
3- Username – Your username;
4- API token – A unique token assigned to you by us.
The following PHP script demonstrates how to generate a WSSE header. This code can be easily tested using PhpFiddle ([login to view URL]).
=== PHP EXAMPLE ===
<?php
$orgName = "YOUR_ORGANZATION";
$username = "YOUR_USERNAME";
$token = "YOUR_TOKEN";
$key = md5($username);
$cryptAlgo = 'AES-256-CFB';
$iv = mb_substr(base64_decode($token), 0, 16, '8bit');
$secret = base64_encode($iv.openssl_encrypt($token, $cryptAlgo, $key, 0, $iv));
date_default_timezone_set('UTC');
$current_time = date('c');
$nonce = md5(rand(), true);
$base64_nonce = base64_encode($nonce);
$password_digest = base64_encode(sha1($nonce . $current_time . $secret, true));
$header = "UsernameToken Username=\"$username\",".
"PasswordDigest=\"$password_digest\",".
"Nonce=\"$base64_nonce\",".
"Created=\"$current_time\",".
"Organization=\"$orgName\"";
echo $header;
?>
=== PHP EXAMPLE : END ===
The following Javascript script demonstrates how to generate a WSSE header. This code can be easily tested using Postman ([login to view URL]).
=== JAVASCRIPT SAMPLE ===
var moment = require('moment');
var username = "YOUR_USERNAME",
orgName = "YOUR_ORGANZATION",
token = "YOUR_TOKEN",
key = [login to view URL](username).toString(),
iv = atob(token).substring(0, 16).toString([login to view URL]),
encrypted,
secret,
created,
nonce,
base64Nonce,
passwordDigest,
utf8iv = [login to view URL](iv),
utf8key = [login to view URL](key),
utf8token = [login to view URL](token);
encrypted = [login to view URL](utf8token, utf8key, {
iv: utf8iv,
mode: [login to view URL],
padding: [login to view URL]
});
secret = btoa(iv + encrypted);
created = moment().utc().format();
created = [login to view URL](0, [login to view URL] - 1) + '+00:00';
nonce = [login to view URL]() * 32767 + '0';
nonce = [login to view URL](nonce).toString();
var stringToSha1 = nonce + created + secret;
var sha1Temp = [login to view URL](stringToSha1, {
asBytes: true
});
base64Nonce = btoa(nonce);
passwordDigest = [login to view URL](sha1Temp);
header = `UsernameToken Username="${username}",PasswordDigest="${passwordDigest}", Nonce="${base64Nonce}", Created="${created}", Organization="${orgName}"`;
=== JAVASCRIPT SAMPLE : END ===
Project ID: #17852473
About the project
9 freelancers are bidding on average $476 for this job
I can provide you Python version of your PHP (or Javascript) code (with unit tests to confirm the code is working as expected) in couple of days. Also I'll provide you documentation how to use it.
Hello? How are you> I have good skills in this field.s so I can help you fi you want. Hope to work with yoiu. I
Hello i'm python expert. i can make api convert php to python with output same result. Please discuss detail on chat. Thanks.
Hello. I have good skills in Python and i'm interest to your project. Contact me please. Thanks.....................................
Hello, Services we can provide: 1. Web site design and Development in PHP 2. Developing website in PHP Frameworks (i.e. CodeIgniter, CakePHP, Zend, and Yii) and more! 3. CMS based solutions (i.e. Wordpress, Jooml More