/PyPinkSign

Small code for K-PKI certificates.

Primary LanguagePythonMIT LicenseMIT

PyPinkSign

Small python code for K-PKI certificates. 공인인증서를 다루는 파이선 코드입니다.

Status

Build Status

Support method

  • Load personal purpose of NPKI a.k.a "공인인증서"
  • Encrypt, Decrypt, Sign, Verify (part of Public-key cryptography)
  • Get Details (Valid date, Serial number, DN)
  • PKCS#7 sign, envelop

Usage example

Load public key file and private key file.

import pypinksign
p = pypinksign.PinkSign()
p.load_pubkey(pubkey_path="/path/signCert.der")
p.load_prikey(prikey_path="/path/signPri.key", prikey_password="my-0wn-S3cret")
sign = p.sign('1') 
verify = p.verify(sign, '1')  # True

Load specific certificate. (by DN)

import pypinksign

# choose_cert function automatically fetch path for certificates
# and load certificate which match DN and passpharase for Private Key
p = pypinksign.choose_cert(dn="홍길순", pw="i-am-h0ng")
sign = p.sign('1') 
verify = p.verify(sign, '1')  # True
envelop = p.envelop_with_sign_msg('message')  # Envelop with K-PKI

Load PFX certificate.

import pypinksign

# choose_cert function automatically fetch path for certificates
# and load certificate which match DN and passpharase for Private Key
p = pypinksign.choose_cert(dn="홍길순", pw="i-am-h0ng")
sign = p.sign('1') 
verify = p.verify(sign, '1')  # True
envelop = p.envelop_with_sign_msg('message')  # Envelop with K-PKI

Requirement & Dependency

Installation

The easiest way to get PyPinkSign is if you have setuptools / distribute or pip installed

easy_install pypinksign

or

pip install pypinksign

The current development version can be found at http://github.com/bandoche/pypinksign/tarball/master

History

Ver. 0.3

  • Add support for PFX (PKCS 12).
  • Add PyOpenSSL module for PFX support.
  • Remove PBKDF1 module.

Ver. 0.2.3

  • Update cryptography dependency version to 1.5.

Ver. 0.2.2

  • You can load private key file from string.
  • Update Docstring format.

Ver. 0.2.1

  • Bug fix.

Ver. 0.2

  • Add function for get serial number of cert.
  • Remove README.rst in repository.

Ver. 0.1.1

  • Add README.rst for PyPI.

Ver. 0.1

  • First release.

Thanks to

Todo List

  • Python 3 support

See also