Need a Python library for generating WSSE headers for API calls

Completed Posted 5 years ago Paid on delivery
Completed 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 ===

Python

Project ID: #17852473

About the project

9 proposals Remote project Active 5 years ago

Awarded to:

yodebublr

Hey there, Python developer here. This looks like an awesome task to complete. WSSE headers should be appended to a request right? So according to your points: 1- A code library that customers can integrate into More

$330 CAD in 10 days
(8 Reviews)
3.6

9 freelancers are bidding on average $476 for this job

gangabass

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.

$300 CAD in 2 days
(354 Reviews)
7.5
whistiti

Hi there. I just read your project and i am quite interested in the challenge. You need to develop a python version of your API but you need it with support with oracle's WSSE headers. It's cool. I can do that good and More

$450 CAD in 5 days
(10 Reviews)
6.5
polarjin2017

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

$277 CAD in 3 days
(23 Reviews)
5.3
TenStar718

Hello i'm python expert. i can make api convert php to python with output same result. Please discuss detail on chat. Thanks.

$1111 CAD in 10 days
(4 Reviews)
4.9
lightingdavid

Hello. I have good skills in Python and i'm interest to your project. Contact me please. Thanks.....................................

$500 CAD in 10 days
(26 Reviews)
5.0
kbizsoft

Hello Sir! Greetings of the day!! I have read your job description, you need an expert C/C++ or Python developer to write a Unix service that will enable us to Encrypt PII (Personal Information) from our applicatio More

$555 CAD in 10 days
(0 Reviews)
0.0
justdotweaks

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

$493 CAD in 10 days
(0 Reviews)
0.0