1 include_directories(. .. ../../include) 2 3 if (${ARCH} STREQUAL "x86_64") 4 set( 5 BN_ARCH_SOURCES 6 7 x86_64-mont.${ASM_EXT} 8 x86_64-mont5.${ASM_EXT} 9 rsaz-x86_64.${ASM_EXT} 10 rsaz-avx2.${ASM_EXT} 11 12 rsaz_exp.c 13 ) 14 endif() 15 16 if (${ARCH} STREQUAL "x86") 17 set( 18 BN_ARCH_SOURCES 19 20 bn-586.${ASM_EXT} 21 co-586.${ASM_EXT} 22 x86-mont.${ASM_EXT} 23 ) 24 endif() 25 26 if (${ARCH} STREQUAL "arm") 27 set( 28 BN_ARCH_SOURCES 29 30 armv4-mont.${ASM_EXT} 31 ) 32 endif() 33 34 add_library( 35 bn 36 37 OBJECT 38 39 add.c 40 asm/x86_64-gcc.c 41 bn.c 42 cmp.c 43 convert.c 44 ctx.c 45 div.c 46 exponentiation.c 47 generic.c 48 gcd.c 49 kronecker.c 50 montgomery.c 51 mul.c 52 prime.c 53 random.c 54 shift.c 55 sqrt.c 56 57 ${BN_ARCH_SOURCES} 58 ) 59 60 perlasm(x86_64-mont.${ASM_EXT} asm/x86_64-mont.pl) 61 perlasm(x86_64-mont5.${ASM_EXT} asm/x86_64-mont5.pl) 62 perlasm(rsaz-x86_64.${ASM_EXT} asm/rsaz-x86_64.pl) 63 perlasm(rsaz-avx2.${ASM_EXT} asm/rsaz-avx2.pl) 64 perlasm(bn-586.${ASM_EXT} asm/bn-586.pl) 65 perlasm(co-586.${ASM_EXT} asm/co-586.pl) 66 perlasm(x86-mont.${ASM_EXT} asm/x86-mont.pl) 67 perlasm(armv4-mont.${ASM_EXT} asm/armv4-mont.pl) 68 69 add_executable( 70 bn_test 71 72 bn_test.cc 73 74 $<TARGET_OBJECTS:test_support> 75 ) 76 77 target_link_libraries(bn_test crypto) 78