summaryrefslogtreecommitdiffstats
path: root/crypto/meson.build
blob: f6f5ce1ecd06e1f5039f5df07fa3c239ed4ef890 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
crypto_ss = ss.source_set()
crypto_ss.add(genh)
crypto_ss.add(files(
  'afsplit.c',
  'block-luks.c',
  'block-qcow.c',
  'block.c',
  'cipher.c',
  'desrfb.c',
  'hash.c',
  'hmac.c',
  'ivgen-essiv.c',
  'ivgen-plain.c',
  'ivgen-plain64.c',
  'ivgen.c',
  'pbkdf.c',
  'secret_common.c',
  'secret.c',
  'tlscreds.c',
  'tlscredsanon.c',
  'tlscredspsk.c',
  'tlscredsx509.c',
  'tlssession.c',
))

if 'CONFIG_NETTLE' in config_host
  crypto_ss.add(files('hash-nettle.c', 'hmac-nettle.c', 'pbkdf-nettle.c'))
elif 'CONFIG_GCRYPT' in config_host
  crypto_ss.add(files('hash-gcrypt.c', 'pbkdf-gcrypt.c'))
  if 'CONFIG_GCRYPT_HMAC' in config_host
    crypto_ss.add(files('hmac-gcrypt.c'))
  else
    crypto_ss.add(files('hmac-glib.c'))
  endif
else
  crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
endif

crypto_ss.add(when: 'CONFIG_SECRET_KEYRING', if_true: files('secret_keyring.c'))
crypto_ss.add(when: 'CONFIG_QEMU_PRIVATE_XTS', if_true: files('xts.c'))
crypto_ss.add(when: 'CONFIG_AF_ALG', if_true: files('afalg.c', 'cipher-afalg.c', 'hash-afalg.c'))
crypto_ss.add(when: 'CONFIG_GNUTLS', if_true: files('tls-cipher-suites.c'))

if 'CONFIG_NETTLE' in config_host
  crypto_ss.add(nettle)
elif 'CONFIG_GCRYPT' in config_host
  crypto_ss.add(gcrypt)
endif

if 'CONFIG_GNUTLS' in config_host
  crypto_ss.add(gnutls)
endif


crypto_ss = crypto_ss.apply(config_host, strict: false)
libcrypto = static_library('crypto', crypto_ss.sources() + genh,
                           dependencies: [crypto_ss.dependencies()],
                           name_suffix: 'fa',
                           build_by_default: false)

crypto = declare_dependency(link_whole: libcrypto,
                            dependencies: [authz, qom])

util_ss.add(files('aes.c'))
util_ss.add(files('init.c'))

if 'CONFIG_GCRYPT' in config_host
  util_ss.add(files('random-gcrypt.c'))
elif 'CONFIG_GNUTLS' in config_host
  util_ss.add(files('random-gnutls.c'))
elif 'CONFIG_RNG_NONE' in config_host
  util_ss.add(files('random-none.c'))
else
  util_ss.add(files('random-platform.c'))
endif

if 'CONFIG_GCRYPT' in config_host
  util_ss.add(gcrypt)
endif

if 'CONFIG_GNUTLS' in config_host
  util_ss.add(gnutls)
endif