~ubuntu-branches/ubuntu/lucid/openssh/lucid

« back to all changes in this revision

Viewing changes to umac.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2008-09-30 23:09:58 UTC
  • mfrom: (1.13.3 upstream) (29 hardy)
  • mto: This revision was merged to the branch mainline in revision 43.
  • Revision ID: james.westby@ubuntu.com-20080930230958-o6vsgn8c4mm959s0
Tags: 1:5.1p1-3
* Remove unnecessary ssh-vulnkey output in non-verbose mode when no
  compromised or unknown keys were found (closes: #496495).
* Configure with --disable-strip; dh_strip will deal with stripping
  binaries and will honour DEB_BUILD_OPTIONS (thanks, Bernhard R. Link;
  closes: #498681).
* Fix handling of zero-length server banners (thanks, Tomas Mraz; closes:
  #497026).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $OpenBSD: umac.h,v 1.1 2007/06/07 19:37:34 pvalchev Exp $ */
 
2
/* -----------------------------------------------------------------------
 
3
 * 
 
4
 * umac.h -- C Implementation UMAC Message Authentication
 
5
 *
 
6
 * Version 0.93a of rfc4418.txt -- 2006 July 14
 
7
 *
 
8
 * For a full description of UMAC message authentication see the UMAC
 
9
 * world-wide-web page at http://www.cs.ucdavis.edu/~rogaway/umac
 
10
 * Please report bugs and suggestions to the UMAC webpage.
 
11
 *
 
12
 * Copyright (c) 1999-2004 Ted Krovetz
 
13
 *                                                                 
 
14
 * Permission to use, copy, modify, and distribute this software and
 
15
 * its documentation for any purpose and with or without fee, is hereby
 
16
 * granted provided that the above copyright notice appears in all copies
 
17
 * and in supporting documentation, and that the name of the copyright
 
18
 * holder not be used in advertising or publicity pertaining to
 
19
 * distribution of the software without specific, written prior permission.
 
20
 *
 
21
 * Comments should be directed to Ted Krovetz (tdk@acm.org)                                        
 
22
 *                                                                   
 
23
 * ---------------------------------------------------------------------- */
 
24
 
 
25
 /* ////////////////////// IMPORTANT NOTES /////////////////////////////////
 
26
  *
 
27
  * 1) This version does not work properly on messages larger than 16MB
 
28
  *
 
29
  * 2) If you set the switch to use SSE2, then all data must be 16-byte
 
30
  *    aligned
 
31
  *
 
32
  * 3) When calling the function umac(), it is assumed that msg is in
 
33
  * a writable buffer of length divisible by 32 bytes. The message itself
 
34
  * does not have to fill the entire buffer, but bytes beyond msg may be
 
35
  * zeroed.
 
36
  *
 
37
  * 4) Two free AES implementations are supported by this implementation of
 
38
  * UMAC. Paulo Barreto's version is in the public domain and can be found
 
39
  * at http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ (search for
 
40
  * "Barreto"). The only two files needed are rijndael-alg-fst.c and
 
41
  * rijndael-alg-fst.h.
 
42
  * Brian Gladman's version is distributed with GNU Public lisence
 
43
  * and can be found at http://fp.gladman.plus.com/AES/index.htm. It
 
44
  * includes a fast IA-32 assembly version.
 
45
  *
 
46
  /////////////////////////////////////////////////////////////////////// */
 
47
#ifndef HEADER_UMAC_H
 
48
#define HEADER_UMAC_H
 
49
 
 
50
 
 
51
#ifdef __cplusplus
 
52
    extern "C" {
 
53
#endif
 
54
 
 
55
struct umac_ctx *umac_new(u_char key[]);
 
56
/* Dynamically allocate a umac_ctx struct, initialize variables, 
 
57
 * generate subkeys from key.
 
58
 */
 
59
 
 
60
#if 0
 
61
int umac_reset(struct umac_ctx *ctx);
 
62
/* Reset a umac_ctx to begin authenicating a new message */
 
63
#endif
 
64
 
 
65
int umac_update(struct umac_ctx *ctx, u_char *input, long len);
 
66
/* Incorporate len bytes pointed to by input into context ctx */
 
67
 
 
68
int umac_final(struct umac_ctx *ctx, u_char tag[], u_char nonce[8]);
 
69
/* Incorporate any pending data and the ctr value, and return tag. 
 
70
 * This function returns error code if ctr < 0. 
 
71
 */
 
72
 
 
73
int umac_delete(struct umac_ctx *ctx);
 
74
/* Deallocate the context structure */
 
75
 
 
76
#if 0
 
77
int umac(struct umac_ctx *ctx, u_char *input, 
 
78
         long len, u_char tag[],
 
79
         u_char nonce[8]);
 
80
/* All-in-one implementation of the functions Reset, Update and Final */
 
81
#endif
 
82
 
 
83
/* uhash.h */
 
84
 
 
85
 
 
86
#if 0
 
87
typedef struct uhash_ctx *uhash_ctx_t;
 
88
  /* The uhash_ctx structure is defined by the implementation of the    */
 
89
  /* UHASH functions.                                                   */
 
90
 
 
91
uhash_ctx_t uhash_alloc(u_char key[16]);
 
92
  /* Dynamically allocate a uhash_ctx struct and generate subkeys using */
 
93
  /* the kdf and kdf_key passed in. If kdf_key_len is 0 then RC6 is     */
 
94
  /* used to generate key with a fixed key. If kdf_key_len > 0 but kdf  */
 
95
  /* is NULL then the first 16 bytes pointed at by kdf_key is used as a */
 
96
  /* key for an RC6 based KDF.                                          */
 
97
  
 
98
int uhash_free(uhash_ctx_t ctx);
 
99
 
 
100
int uhash_set_params(uhash_ctx_t ctx,
 
101
                   void       *params);
 
102
 
 
103
int uhash_reset(uhash_ctx_t ctx);
 
104
 
 
105
int uhash_update(uhash_ctx_t ctx,
 
106
               u_char       *input,
 
107
               long        len);
 
108
 
 
109
int uhash_final(uhash_ctx_t ctx,
 
110
              u_char        ouput[]);
 
111
 
 
112
int uhash(uhash_ctx_t ctx,
 
113
        u_char       *input,
 
114
        long        len,
 
115
        u_char        output[]);
 
116
 
 
117
#endif
 
118
 
 
119
#ifdef __cplusplus
 
120
    }
 
121
#endif
 
122
 
 
123
#endif /* HEADER_UMAC_H */