python 数字证书登录

阅读: 评论:0

python 数字证书登录

python 数字证书登录

import win32com.client

store = win32com.client.Dispatch('CAPICOM.Store')

# 打开证书存储区

# 2 -> CAPICOM_CURRENT_USER_STORE

# 0 -> CAPICOM_STORE_OPEN_READ_ONLY

store.Open(2, "My", 0)

# 查找有效证书

# 12 -> CAPICOM_CERTIFICATE_FIND_KEY_USAGE

# 0x00000080 -> CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE

# 9 -> CAPICOM_CERTIFICATE_FIND_TIME_VALID

# 6,6 -> CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,CERT_KEY_SPEC_PROP_ID

stores = store.Certificates.Find(12,0x00000080).Find(9).Find(6,6)

stores = store.Certificates.Find(0,szThumbprint)# szThumbprint -> 按缩略图查询

# 0 -> CAPICOM_CERTIFICATE_FIND_SHA1_HASH

# 找到证书计数

stores.Count

# 获取证书信息

for data in stores:

data.GetInfo(0)# 颁发给

data.GetInfo(1)# 颁发者

data.GetInfo(2)# 主题(E) Email

data.GetInfo(3)# ''

data.GetInfo(4)# 主要名称= RFC822 Name=

data.GetInfo(5)# ''

data.GetInfo(6)# 主题(CN)

data.GetInfo(7)# 颁发者

data.Thumbprint# 缩略图

或者

stores.Item(idx).GetInfo(idx2)# idx 1-stores.Count

# idx2 0-7

# 证书选择

selCert = soters.Select()

selCert.GetInfo(0-7)

selCert.Thumbprint

# 数据签名

SignedData = win32com.client.Dispatch('CAPICOM.SignedData')

Signer = win32com.client.Dispatch('CAPICOM.Signer')

TimeAttribute = win32com.client.Dispatch('CAPICOM.Attribute')

SignedData.Content = 'Test'# 签名内容

Signer.Certificate = ret.Item(1)# 选择的证书

TimeAttribute.Name = 0# 0 -> CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME

import datetime

TimeAttribute.Value = datetime.datetime('2010-04-22')

Signer.AuthenticatedAttributes.Add(TimeAttribute)

szSignature = SignedData.Sign(Signer, True, 0)# 0 -> CAPICOM_ENCODE_BASE64

# 签名校验

SignedData.Content='Test';

SignedData.Verify(szSignature, true, 1);# 1 -> CAPICOM_VERIFY_SIGNATURE_AND_CERTIFIC

本文发布于:2024-02-04 15:31:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170710595656719.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数字证书   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23