aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/openssl/crypto/poly1305/poly1305_local.h
blob: 3a5cd149c1d10f0d520571cccb8f30da5bf8f00a (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
/* 
 * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. 
 * 
 * Licensed under the OpenSSL license (the "License").  You may not use 
 * this file except in compliance with the License.  You can obtain a copy 
 * in the file LICENSE in the source distribution or at 
 * https://www.openssl.org/source/license.html 
 */ 
 
typedef void (*poly1305_blocks_f) (void *ctx, const unsigned char *inp, 
                                   size_t len, unsigned int padbit); 
typedef void (*poly1305_emit_f) (void *ctx, unsigned char mac[16], 
                                 const unsigned int nonce[4]); 
 
struct poly1305_context { 
    double opaque[24];  /* large enough to hold internal state, declared 
                         * 'double' to ensure at least 64-bit invariant 
                         * alignment across all platforms and 
                         * configurations */ 
    unsigned int nonce[4]; 
    unsigned char data[POLY1305_BLOCK_SIZE]; 
    size_t num; 
    struct { 
        poly1305_blocks_f blocks; 
        poly1305_emit_f emit; 
    } func; 
};