2016-07-07 3 views
0

이 스크립트를 통해 원격 기계와의 연결을 시도하고 있습니다. 세션을 열려고 시도하는 원격 컴퓨터에서 스크립트가 실행되고 있습니다. 세션이 잘못되었다고 생각합니다. opt/PTK/lib/libcryptoki.so에 스마트 카드 (예 : 00000010300000A2)를 통해 키 저장소가 포함되어 있지만 사용 가능한 슬롯이 0을 반환하고있는 라이브러리의 슬롯 0에 액세스하려고합니다.HSM 파이썬과 통신하기

올바른 SCRIPT

#!/usr/bin/python 
from PyKCS11.LowLevel import * 

a = CPKCS11Lib() 
info = CK_INFO() 
slotInfo = CK_SLOT_INFO() 
lib='/opt/PTK/lib/libcryptoki.so' 
slotList = ckintlist() 

print("Load of " + lib + ": " + str(a.Load(lib, 1))) 
a.C_Initialize() 
print("C_GetInfo:", hex(a.C_GetInfo(info))) 
print("Library manufacturerID:", info.GetManufacturerID()) 

del info 

print("C_GetSlotList(NULL): " + hex(a.C_GetSlotList(0, slotList))) 
print("\tAvailable Slots: " + str(len(slotList))) 

OUTPUT

ctstat ProtectToolkit C Status Utility 4.3.0 Copyright (c) Safenet, Inc. 2009-2013 ShowAllSlots:4 slots, 4 with tokens Slot ID 0 Description : ProtectServer K5E:00045 Manufacturer : SafeNet Inc. Hardware Version : 65.00 Firmware Version : 3.20 Token for Slot ID 0 Label : CKM Manufacturer : SafeNet Inc. Model : K5E:PL25 Serial Number : 502152:00045 Hardware Version : 65.00 Firmware Version : 3.20

+0

'pkcs11.getInfo() – viraptor

+0

다음과 같은 추적을 반환합니다 :'추적 (가장 최근 호출 마지막) : 파일 "Cryptoki.py", 줄 18, info = pkcs11.getInfo() 파일 "/usr/local/lib/python3.5 /site-packages/PyKCS11/__init__.py "줄 475, getInfo에서 제기 PyKCS11Error (rv) PyKCS11.PyKCS11Error : CKR_SLOT_ID_INVALID (0x00000003)'@viraptor – DJ2

+0

이 스크립트는 원격 시스템에서 직접 실행될 때 슬롯을 감지합니까? 'ctstat' /'hsmstate'와 같은 명령은 원격 기계에서 직접 실행될 때 (즉, HSM이 올바르게 설치되었는지) 작동합니까? 그들은 원격으로 일합니까? 참고 :이 주석은 SafeNet/Gemalto ProtectProcessing 제품을 전제로합니다. – vlp

답변

0

이 나를 위해 완벽하게 작동합니다. 연결면에서.

import subprocess 
proc = subprocess.Popen(("ssh", "[email protected]", "echo", "1"), 
stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
stdout, stderr = proc.communicate()