• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include_directories(. .. ../../include)
2
3if (${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  )
14endif()
15
16if (${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  )
24endif()
25
26if (${ARCH} STREQUAL "arm")
27  set(
28    BN_ARCH_SOURCES
29
30    armv4-mont.${ASM_EXT}
31  )
32endif()
33
34add_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
60perlasm(x86_64-mont.${ASM_EXT} asm/x86_64-mont.pl)
61perlasm(x86_64-mont5.${ASM_EXT} asm/x86_64-mont5.pl)
62perlasm(rsaz-x86_64.${ASM_EXT} asm/rsaz-x86_64.pl)
63perlasm(rsaz-avx2.${ASM_EXT} asm/rsaz-avx2.pl)
64perlasm(bn-586.${ASM_EXT} asm/bn-586.pl)
65perlasm(co-586.${ASM_EXT} asm/co-586.pl)
66perlasm(x86-mont.${ASM_EXT} asm/x86-mont.pl)
67perlasm(armv4-mont.${ASM_EXT} asm/armv4-mont.pl)
68
69add_executable(
70  bn_test
71
72  bn_test.cc
73
74  $<TARGET_OBJECTS:test_support>
75)
76
77target_link_libraries(bn_test crypto)
78