summaryrefslogtreecommitdiff
path: root/_oasis
blob: b5fa73e579a47896fab01d4041cf45d9510873fb (plain)
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
OASISFormat: 0.4
Name:        cryptokit
Version: 1.15
Authors:     Xavier Leroy
License:     LGPL-2 with OCaml linking exception
BuildTools:  ocamlbuild, ocamldoc
Plugins:     META (0.4), DevFiles (0.4)

Synopsis: Cryptographic primitives
Description:
  This library provides a variety of cryptographic primitives that can be used
  to implement cryptographic protocols in security-sensitive applications. The
  primitives provided include:
  .
  - Symmetric-key ciphers: AES, Chacha20, Blowfish, DES, Triple-DES, ARCfour,
    in ECB, CBC, CFB, OFB and counter modes.
  - Public-key cryptography: RSA encryption, Diffie-Hellman key agreement.
  - Hash functions and MACs: SHA-1, SHA-2, SHA-3, RIPEMD160, MD5,
    and MACs based on AES and DES.
  - Random number generation.
  - Encodings and compression: base 64, hexadecimal, Zlib compression.
  .
  Additional ciphers and hashes can easily be used in conjunction with
  the library. In particular, basic mechanisms such as chaining modes,
  output buffering, and padding are provided by generic classes that can
  easily be composed with user-provided ciphers. More generally, the library
  promotes a "Lego"-like style of constructing and composing
  transformations over character streams.

Flag zlib
  Description: Enable ZLib
  Default$: !os_type(Win32)

Flag hardwaresupport
  Description: Enable hardware support for AES and GCM (needs GCC or Clang)
  Default$: (architecture(amd64) || architecture(i386)) && !os_type(Win32)

Library cryptokit
  Path:    src
  Modules: CryptokitBignum, Cryptokit
  CSources: aesni.c,
            aesni.h,
            arcfour.c,
            arcfour.h,
            stubs-arcfour.c,
            blowfish.c,
            blowfish.h,
            stubs-blowfish.c,
            d3des.c,
            d3des.h,
            stubs-des.c,
            rijndael-alg-fst.c,
            rijndael-alg-fst.h,
            ripemd160.c,
            ripemd160.h,
            stubs-ripemd160.c,
            sha1.c,
            sha1.h,
            stubs-sha1.c,
            sha256.c,
            sha256.h,
            stubs-sha256.c,
            sha512.c,
            sha512.h,
            stubs-sha512.c,
            stubs-aes.c,
            stubs-md5.c,
            stubs-misc.c,
            stubs-rng.c,
            stubs-zlib.c,
            keccak.h,
            keccak.c,
            stubs-sha3.c,
            chacha20.h,
            chacha20.c,
            stubs-chacha20.c
  BuildDepends: unix, zarith
  CCOpt: -DCAML_NAME_SPACE
  if flag(zlib)
    CCOpt+: -DHAVE_ZLIB
    if system(win32) || system(win64)
      CCLib: zlib.lib
    else
      CCLib: -lz
  if system(win32) || system(win64)
    CCLib+: advapi32.lib
  else if system(mingw) || system(mingw64)
    CCLib+: -ladvapi32
  if flag(hardwaresupport)
    CCOpt+: -maes

Executable test
  Path:         test
  MainIs:       test.ml
  CompiledObject: native
  BuildDepends: cryptokit
  Build$:       flag(tests)
  Install:      false

Executable prngtest
  Path:         test
  MainIs:       prngtest.ml
  CompiledObject: native
  BuildDepends: cryptokit
  Build$:       flag(tests)
  Install:      false

Test main
  Command:   $test
  TestTools: test

Flag bench
  Description: Build and run benchmark
  Default: false

Executable speedtest
  Path:           test
  MainIs:         speedtest.ml
  CompiledObject: native
  BuildDepends:   cryptokit
  Install:        false
  Build$:         flag(bench)

Test bench
  Command:   $speedtest
  Run$:      flag(bench)
  TestTools: speedtest

Document "api-cryptokit"
  Title:                API reference for Cryptokit
  Type:                 ocamlbuild (0.3)
  InstallDir:           $htmldir/cryptokit
  BuildTools+:          ocamldoc
  XOCamlBuildPath:      src/
  XOCamlbuildLibraries: cryptokit

SourceRepository head
  Type:     git
  Location: https://github.com/xavierleroy/cryptokit
  Browser:  https://github.com/xavierleroy/cryptokit

SourceRepository this
  Type:     git
  Location: https://github.com/xavierleroy/cryptokit/releases/tag/release113
  Browser:  https://github.com/xavierleroy/cryptokit/releases/tag/release113