aboutsummaryrefslogtreecommitdiff
path: root/README.prov.md
blob: 0749104e26fbe8c7941570efcd950a6a0202833b (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
# GOST provider

The GOST provider is currently built in parallell with the GOST
engine, and is implemented like a wrapper around the engine code.

## Currently implemented

Symmetric ciphers:

-   gost89
-   gost89-cnt
-   gost89-cnt-12
-   gost89-cbc
-   kuznyechik-ecb
-   kuznyechik-cbc
-   kuznyechik-cfb
-   kuznyechik-ofb
-   kuznyechik-ctr
-   magma-cbc
-   magma-ctr
-   magma-ctr-acpkm
-   magma-ctr-acpkm-omac
-   kuznyechik-ctr-acpkm
-   kuznyechik-ctr-acpkm-omac

Hashes:

-   id-tc26-gost3411-12-256 (md_gost12_256)
-   id-tc26-gost3411-12-512 (md_gost12_512)
-   id-GostR3411-94 (md_gost94)

MACs:

-   gost-mac
-   gost-mac-12
-   magma-mac
-   kuznyechik-mac
-   kuznyechik-ctr-acpkm-omac

## TODO, not requiring additional OpenSSL support

-   Basic support for GOST keys, i.e. implementations of KEYMGMT
    (including key generation), DECODER and DECODER.

-   Support for these operations using GOST keys:

    -   ASYM_CIPHER (encryption and decryption using GOST keys)
    -   SIGNATURE (signing and verifying using GOST keys)
    
## TODO, which requires additional OpenSSL support

-   TLSTREE support.  This may require additional changes in libssl.
    Needs investigation.

-   PKCS7 and CMS support.  This requires OpenSSL PKCS7 and CMS code
    to change for better interfacing with providers.

## TODO, far future

-   Refactor the code into being just a provider.  This is to be done
    when engines aren't supported any more.