Xolphin API module for Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
xolphin
.gitignore
CHANGELOG.md
Makefile Initial commit Mar 11, 2016
README.rst
readme.md
requirements.txt
setup.cfg Initial commit Mar 11, 2016
setup.py Release v1.6.0 - See README.md for details Oct 3, 2017

readme.md

Xolphin API wrapper for Python

xolphin-python-api is a library which allows quick integration of the Xolphin REST API in Python to automated ordering, issuance and installation of SSL Certificates.

About Xolphin

Xolphin is the largest supplier of SSL Certificates and Digital Signatures in the Netherlands. Xolphin has
a professional team providing reliable support and rapid issuance of SSL Certificates at an affordable price from industry leading brands such as Comodo, GeoTrust, GlobalSign, Thawte and Symantec.

Library installation

Library can be installed via pip

pip install xolphin-api

And updated via

pip install xolphin-api --upgrade

Or manually from source

git clone https://github.com/xolphin/xolphin-api-python.git
cd xolphin-api-python
python setup.py install

Usage

Client initialization

import xolphin

client = xolphin.Client('<username>', '<password>')

Requests

Getting list of requests

requests = client.request().all()
for request in requests:
    print(request.id, request.product.id)

Getting request by ID

request = client.request().get(961992637)
print(request.product.brand)

Request certificate

ccr = client.request().create(24, 1, 'csr string', 'EMAIL')
ccr.address = 'Address'
ccr.approver_first_name = 'FirstName'
ccr.approver_last_name = 'LastName'
ccr.approver_phone = '+12345678901'
ccr.approver_email = 'email@domain.com'
ccr.zipcode = '123456'
ccr.city = 'City'
ccr.company = 'Company'
# currently available languages: en, de, fr, nl
ccr.language = 'en'
ccr.subject_alternative_names.append('test1.domain.com')
ccr.subject_alternative_names.append('test2.domain.com')
ccr.dcv.append({
    'domain': 'test1.domain.com',
    'dcvType': 'EMAIL',
    'approverEmail': 'email@domain.com'
})

request = client.request().send(ccr)
print(request.id)

Create a note

result = client.request().send_note(1234, 'My message')
print(result.message);

Get list of notes

result = client.request().get_notes(1234)

for note in result:
    print(note.messageBody);

Request an "Encryption Everywhere" certificate

ccr = client.request().create_ee()
ccr.csr = "<csr_string>"
ccr.approver_first_name = 'FirstName'
ccr.approver_last_name = 'LastName'
ccr.approver_phone = '+12345678901'
ccr.approver_email = 'email@domain.com'
ccr.subject_alternative_names.append('test1.domain.com')
ccr.subject_alternative_names.append('test2.domain.com')
ccr.dcvType = 'DNS'
request = client.request().send_ee(ccr)

Send a "Comodo Subscriber Agreement" email

//currently available languages: en, de, fr, nl
result = client.request().send_ComodoSA(124, 'test@example.com')
print(result.message);

Certificate

Certificates list and expirations

certificates = client.certificate().all()
for certificate in certificates:
    print(certificate.id, certificate.isExpired())

Download certificate

cert = client.certificate().download(961983489, 'CRT')
with open('crt.crt', 'wb') as f:
    f.write(cert)

Support

Products list

products = client.support().products()
for product in products:
    print(product.id, product.brand)

Decode CSR

data = client.support().decode_csr('csr string')
print(data.type, data.size)