summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 06:42:04 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 06:42:04 +0000
commit10039d90dc59015a278b0151636fe1277e533d9d (patch)
treec25a0f1ffe45280878350f6fa80111093b8f6958
parent5b259a13874fb2d486c8a639bbf91727b53fd566 (diff)
automatic import of python-gmssl
-rw-r--r--.gitignore1
-rw-r--r--python-gmssl.spec288
-rw-r--r--sources1
3 files changed, 290 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f135c28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gmssl-3.2.2.linux-x86_64.tar.gz
diff --git a/python-gmssl.spec b/python-gmssl.spec
new file mode 100644
index 0000000..fc41e36
--- /dev/null
+++ b/python-gmssl.spec
@@ -0,0 +1,288 @@
+%global _empty_manifest_terminate_build 0
+Name: python-gmssl
+Version: 3.2.2
+Release: 1
+Summary: Pure-Python SM2/SM3/SM4 implementation
+License: BSD
+URL: https://github.com/duanhongyi/gmssl
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/06/29/008dc5071656ac522282f87accc837643be1fa9e7d021f890c1cdf390714/gmssl-3.2.2.linux-x86_64.tar.gz
+BuildArch: noarch
+
+
+%description
+GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。
+### 安装
+```shell
+pip install gmssl
+```
+### SM2算法
+RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法
+SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。
+gmssl是包含国密SM2算法的Python实现, 提供了 `encrypt`、 `decrypt`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM2`
+```python
+import base64
+import binascii
+from gmssl import sm2, func
+#16进制的公钥和私钥
+private_key = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'
+public_key = 'B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207'
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key)
+# 对接java 时验签失败可以使用
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key, asn1=True)
+```
+#### 2. `encrypt`和`decrypt`
+```python
+#数据和加密后数据为bytes类型
+data = b"111"
+enc_data = sm2_crypt.encrypt(data)
+dec_data =sm2_crypt.decrypt(enc_data)
+assert dec_data == data
+```
+#### 3. `sign`和`verify`
+```python
+data = b"111" # bytes类型
+random_hex_str = func.random_hex(sm2_crypt.para_len)
+sign = sm2_crypt.sign(data, random_hex_str) # 16进制
+assert sm2_crypt.verify(sign, data) # 16进制
+```
+#### 4. `sign_with_sm3`和`verify_with_sm3`
+```python
+data = b"111" # bytes类型
+sign = sm2_crypt.sign_with_sm3(data) # 16进制
+assert sm2_crypt.verify_with_sm3(sign, data) # 16进制
+```
+### SM4算法
+国密SM4(无线局域网SMS4)算法, 一个分组算法, 分组长度为128bit, 密钥长度为128bit,
+算法具体内容参照[SM4算法](https://drive.google.com/file/d/0B0o25hRlUdXcbzdjT0hrYkkwUjg/view?usp=sharing)。
+gmssl是包含国密SM4算法的Python实现, 提供了 `encrypt_ecb`、 `decrypt_ecb`、 `encrypt_cbc`、
+`decrypt_cbc`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM4`
+```python
+from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
+key = b'3l5butlj26hvv313'
+value = b'111' # bytes类型
+iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # bytes类型
+crypt_sm4 = CryptSM4()
+```
+#### 2. `encrypt_ecb`和`decrypt_ecb`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_ecb(value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_ecb(encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+#### 3. `encrypt_cbc`和`decrypt_cbc`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_cbc(iv , value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_cbc(iv , encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+
+%package -n python3-gmssl
+Summary: Pure-Python SM2/SM3/SM4 implementation
+Provides: python-gmssl
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-gmssl
+GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。
+### 安装
+```shell
+pip install gmssl
+```
+### SM2算法
+RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法
+SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。
+gmssl是包含国密SM2算法的Python实现, 提供了 `encrypt`、 `decrypt`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM2`
+```python
+import base64
+import binascii
+from gmssl import sm2, func
+#16进制的公钥和私钥
+private_key = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'
+public_key = 'B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207'
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key)
+# 对接java 时验签失败可以使用
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key, asn1=True)
+```
+#### 2. `encrypt`和`decrypt`
+```python
+#数据和加密后数据为bytes类型
+data = b"111"
+enc_data = sm2_crypt.encrypt(data)
+dec_data =sm2_crypt.decrypt(enc_data)
+assert dec_data == data
+```
+#### 3. `sign`和`verify`
+```python
+data = b"111" # bytes类型
+random_hex_str = func.random_hex(sm2_crypt.para_len)
+sign = sm2_crypt.sign(data, random_hex_str) # 16进制
+assert sm2_crypt.verify(sign, data) # 16进制
+```
+#### 4. `sign_with_sm3`和`verify_with_sm3`
+```python
+data = b"111" # bytes类型
+sign = sm2_crypt.sign_with_sm3(data) # 16进制
+assert sm2_crypt.verify_with_sm3(sign, data) # 16进制
+```
+### SM4算法
+国密SM4(无线局域网SMS4)算法, 一个分组算法, 分组长度为128bit, 密钥长度为128bit,
+算法具体内容参照[SM4算法](https://drive.google.com/file/d/0B0o25hRlUdXcbzdjT0hrYkkwUjg/view?usp=sharing)。
+gmssl是包含国密SM4算法的Python实现, 提供了 `encrypt_ecb`、 `decrypt_ecb`、 `encrypt_cbc`、
+`decrypt_cbc`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM4`
+```python
+from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
+key = b'3l5butlj26hvv313'
+value = b'111' # bytes类型
+iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # bytes类型
+crypt_sm4 = CryptSM4()
+```
+#### 2. `encrypt_ecb`和`decrypt_ecb`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_ecb(value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_ecb(encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+#### 3. `encrypt_cbc`和`decrypt_cbc`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_cbc(iv , value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_cbc(iv , encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+
+%package help
+Summary: Development documents and examples for gmssl
+Provides: python3-gmssl-doc
+%description help
+GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。
+### 安装
+```shell
+pip install gmssl
+```
+### SM2算法
+RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法
+SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。
+gmssl是包含国密SM2算法的Python实现, 提供了 `encrypt`、 `decrypt`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM2`
+```python
+import base64
+import binascii
+from gmssl import sm2, func
+#16进制的公钥和私钥
+private_key = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'
+public_key = 'B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207'
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key)
+# 对接java 时验签失败可以使用
+sm2_crypt = sm2.CryptSM2(
+ public_key=public_key, private_key=private_key, asn1=True)
+```
+#### 2. `encrypt`和`decrypt`
+```python
+#数据和加密后数据为bytes类型
+data = b"111"
+enc_data = sm2_crypt.encrypt(data)
+dec_data =sm2_crypt.decrypt(enc_data)
+assert dec_data == data
+```
+#### 3. `sign`和`verify`
+```python
+data = b"111" # bytes类型
+random_hex_str = func.random_hex(sm2_crypt.para_len)
+sign = sm2_crypt.sign(data, random_hex_str) # 16进制
+assert sm2_crypt.verify(sign, data) # 16进制
+```
+#### 4. `sign_with_sm3`和`verify_with_sm3`
+```python
+data = b"111" # bytes类型
+sign = sm2_crypt.sign_with_sm3(data) # 16进制
+assert sm2_crypt.verify_with_sm3(sign, data) # 16进制
+```
+### SM4算法
+国密SM4(无线局域网SMS4)算法, 一个分组算法, 分组长度为128bit, 密钥长度为128bit,
+算法具体内容参照[SM4算法](https://drive.google.com/file/d/0B0o25hRlUdXcbzdjT0hrYkkwUjg/view?usp=sharing)。
+gmssl是包含国密SM4算法的Python实现, 提供了 `encrypt_ecb`、 `decrypt_ecb`、 `encrypt_cbc`、
+`decrypt_cbc`等函数用于加密解密, 用法如下:
+#### 1. 初始化`CryptSM4`
+```python
+from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
+key = b'3l5butlj26hvv313'
+value = b'111' # bytes类型
+iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # bytes类型
+crypt_sm4 = CryptSM4()
+```
+#### 2. `encrypt_ecb`和`decrypt_ecb`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_ecb(value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_ecb(encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+#### 3. `encrypt_cbc`和`decrypt_cbc`
+```python
+crypt_sm4.set_key(key, SM4_ENCRYPT)
+encrypt_value = crypt_sm4.crypt_cbc(iv , value) # bytes类型
+crypt_sm4.set_key(key, SM4_DECRYPT)
+decrypt_value = crypt_sm4.crypt_cbc(iv , encrypt_value) # bytes类型
+assert value == decrypt_value
+```
+
+%prep
+%autosetup -n gmssl-3.2.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-gmssl -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 3.2.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..f29fb16
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+5c63a94f1e3f4ab74f77cb55c3e96bbf gmssl-3.2.2.linux-x86_64.tar.gz