gddlZddlZddlZddlZddlmZmZddlmZm Z m Z m Z m Z m Z ddlTddlTddlmZd dejdejd efd ZGd d ZdS)N)b2hHexstr)StructArraythisInt32ubInt16ubInt8ub)*)Optionalfooin_fileout_zippc6gd}|}t|rqtjd|dd\}}||dz||dz zdz|dd|z|d|zd}t|odSdS) zConvert an ICJ (Interoperable Java Card) file [back] to a CAP file. example usage: with io.open(sys.argv[1],"rb") as f, zipfile.ZipFile(sys.argv[2], "wb") as z: ijc_to_cap(f, z) ) Header DirectoryAppletImport ConstantPoolClassMethod StaticField RefLocationExport DescriptorDebugz!BHrz /javacard/.capN)readlenstructunpackwritestr)rrrTAGSbtagsizes (7(>(/(1&&9O9H9O9>r3C3C)C)7yy}}(D "F "F"(f (.w(/(1%% FF5QS8KbcjKjElEl3m3m)m")") c c c c cDe((&(((( / /3 /v / / / / / /r,r.)r )rGr#sysio osmocom.utilsrr constructrrrrr r osmocom.construct osmocom.tlvr rkIOBaserHrlr+r.ror,r*rws & %%%%%%%%CCCCCCCCCCCCCCCC++++++   GO     b/b/b/b/b/b/b/b/b/b/r,