티스토리 뷰

사용하기 전에 레이블을 확인하여 하나의 토큰으로 만 작업 할 수 있습니다. 예 :

tokenInfo = pkcs11.getTokenInfo(slot)
if 'DesiredTokenLabel' == tokenInfo.label.decode('ascii').strip():
    # Start working with this particular token
        session = pkcs11.openSession(s)
        

findObjects호출에 대한 템플릿 인수를 사용하여 특정 개체 만 열거 할 수 있습니다 . 예 :

# get objects labelled "PRIV"
objects = session.findObjects([(CKA_LABEL, "PRIV")])

# get all private key objects
objects = session.findObjects([(CKA_CLASS, CKO_PRIVATE_KEY)])

# get all private key objects labelled "PRIV"
objects = session.findObjects([(CKA_CLASS, CKO_PRIVATE_KEY),(CKA_LABEL, "PRIV")])

# get all RSA private key objects labelled "PRIV"
objects = session.findObjects([(CKA_CLASS, CKO_PRIVATE_KEY),(CKA_KEY_TYPE, CKK_RSA),(CKA_LABEL, "PRIV")])

다음은 하드 코딩 된 매개 변수가있는 예제 코드입니다.

from PyKCS11 import *

pkcs11 = PyKCS11.PyKCS11Lib()
pkcs11.load("your module path...")
slots = pkcs11.getSlotList()
for s in slots:
    t = pkcs11.getTokenInfo(s)
        if 'CKM' == t.label.decode('ascii').strip():
                session = pkcs11.openSession(s)
                        objects = session.findObjects([(CKA_LABEL, "00000103000003A1")])
                                print ("Found %d objects: %s" % (len(objects), [x.value() for x in objects]))
                                

지금은 Python 2.x에서 PyKCS11을 사용할 수 없으므로 Python 3입니다.

Soma 추가 (무작위) 메모 :

  • 핸들에 의존하지 마십시오. 프로그램 실행에 따라 다를 수 있습니다.

  • 프로그램의 명령 줄 인수는 사용자에게 달려 있습니다. 프로그램에 다음과 같은 인수가 필요한지 스스로 결정해야합니다. --token-label

면책 조항 : 나는 파이썬이 아니므로 내 생각을 확인하십시오.

행운을 빕니다!

편집 (최근 편집에 대하여)>

예외가 포착되고 무시되기 때문에 오류가 표시되지 않습니다.

try:
    attributes = session.getAttributeValue(o, all_attributes)
    except PyKCS11.PyKCS11Error as e:
        continue
        


출처
https://stackoverflow.com/questions/39920023
댓글
공지사항
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30