changed to keep it simple

This commit is contained in:
Larry Bugbee 2014-03-08 12:16:58 -08:00 committed by Steffen Jaeckel
parent 3f9144c9a7
commit a543e0caa6

View File

@ -13,28 +13,29 @@
dynamic languages. dynamic languages.
This instance uses Python's ctypes and requires a single This instance uses Python's ctypes and requires a single
.dylib linking together LTC and one or more math libraries. .dylib linking together LTC and a math library. Building
Building a single .dylib is needed because LTC wants a a single .dylib is needed because LTC wants a fairly tight
fairly tight relationship between itself and the mathlib. relationship between itself and the mathlib. (ctypes can
(ctypes can load multiple .dylibs, but it does not support load multiple .dylibs, but it does not support this level
this level of coupling between those independent libraries.) of tight coupling between otherwise independent libraries.)
My .dylib was created on OSX with the following steps: My .dylib was created on OSX with the following steps:
1- compile LTC to a .a static lib: 1- compile LTC to a .a static lib:
CFLAGS="-DLTM_DESC -DUSE_LTM -DTFM_DESC -DUSE_TFM \ CFLAGS="-DLTM_DESC -DUSE_LTM" make
-I/usr/local/include" make
2- link LTC, LTM and TFM into a single .dylib: 2- link LTC and LTM into a single .dylib:
ar2dylib_with_and tomcrypt tommath tfm ar2dylib_with tomcrypt tommath
where ar2dylib_with_and is a shell script that combines where ar2dylib_with is a shell script that combines
the .a with .dylibs for LTM and TFM the LTC .a with the LTM .dylib
Reminder: you don't need to bind in a math library unless Reminder: you don't need to bind in a math library unless
you are going to use LTC functions that depend you are going to use LTC functions that depend
on a mathlib. For example, public key crypto on a mathlib. For example, public key crypto
needs a mathlib; hashing and symmetric encryption needs a mathlib; hashing and symmetric encryption
does not. do not.
This code was written for Python 2.7.
Larry Bugbee Larry Bugbee
March 2014 March 2014
@ -138,40 +139,6 @@ if 1:
print ' %-25s %d' % (name, value) print ' %-25s %d' % (name, value)
#---------------------------------------------------------------
# init the selected math package, change to another mathlib,
# and change back to the first mathlib
if 1:
print '\n init the selected math package, change, and change again'
# show ltm_desc
ptr = c_int.in_dll(LTC, 'ltm_desc')
print ' ltm_desc: ', hex(ptr.value)
# show tfm_desc
ptr = c_int.in_dll(LTC, 'tfm_desc')
print ' tfm_desc: ', hex(ptr.value)
# let's see the initial value of ltc_mp
ptr = c_int.in_dll(LTC, 'ltc_mp')
print ' initial ptr:', hex(ptr.value)
# init LTM and show ltc_mp
LTC.init_LTM()
ptr = c_int.in_dll(LTC, 'ltc_mp')
print ' ptr to LTM: ', hex(ptr.value)
# init TFM and show ltc_mp
LTC.init_TFM()
ptr = c_int.in_dll(LTC, 'ltc_mp')
print ' ptr to TFM: ', hex(ptr.value)
# now change back to LTM
LTC.init_LTM()
ptr = c_int.in_dll(LTC, 'ltc_mp')
print ' ptr to LTM: ', hex(ptr.value)
#--------------------------------------------------------------- #---------------------------------------------------------------
#--------------------------------------------------------------- #---------------------------------------------------------------
# ctypes getting a list of this build's supported algorithms # ctypes getting a list of this build's supported algorithms