Skip to main content

python bind of GMLib

Project description

pygmlib

GMLib项目的python绑定,利用pybind11进行绑定

已经通过测试的环境

操作系统 CPU python版本
Windows11 i5-12500H 3.9
Windows11 i5-12500H 3.10

1 快速开始

1.1 通过pypi安装(推荐)

pip install pygmlib

1.2 通过源码包安装(推荐)

在pypi主页下载pygmlib项目的源码包并解压

  • 运行
pip install ./pygmlib

1.3 通过github项目安装

  • 克隆仓库
git clone https://github.com/oldprincess/py-gmlib.git
  • 获取子模块
cd py-gmlib
git submodule update --init --recursive
cd ..
  • pip安装pygmlib
pip install ./pygmlib

2 支持的密码算法

  • SM3
  • SM4: ECB, CBC, CFB, OFB, CTR, GCM
  • AES: ECB, CBC, CFB, OFB, CTR, GCM

3 使用样例

下面的样例实现SM4算法ECB模式的加密和解密功能,并校验正确性

import pygmlib

sm4_key = bytes(16)  # 16 bytes ZERO
sm4_pt = bytes(16)  # 16 bytes ZERO
# sm4 ecb encrypt
sm4e = pygmlib.cipher.Sm4EcbEncryptor(sm4_key)
ct = sm4e.update(sm4_pt)
ct += sm4e.final()
# sm4 ecb decrypt
sm4d = pygmlib.cipher.Sm4EcbDecryptor(sm4_key)
pt = sm4d.update(ct)
pt += sm4d.final()

assert pt == sm4_pt
# key: 00000000000000000000000000000000
# pt : 00000000000000000000000000000000
# ct : 9f1f7bff6f5511384d9430531e538fd3
print("key:", sm4_key.hex())
print("pt :", sm4_pt.hex())
print("ct :", ct.hex())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygmlib-1.0.0.tar.gz (220.5 kB view details)

Uploaded Source

File details

Details for the file pygmlib-1.0.0.tar.gz.

File metadata

  • Download URL: pygmlib-1.0.0.tar.gz
  • Upload date:
  • Size: 220.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for pygmlib-1.0.0.tar.gz
Algorithm Hash digest
SHA256 626d8e60b64baead4bf673ce305ce2a84739849233d02c504a3855eb5f5a4028
MD5 8e746b6554393be6235a9e5657bd0dfb
BLAKE2b-256 0bdc73f46891b6c884484c8ed5a6e0b9cec4748b5a8d073e8718bd432b11bd09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page