Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
crypto
b128ops.h
Go to the documentation of this file.
1
/* b128ops.h - common 128-bit block operations
2
*
3
* Copyright (c) 2003, Dr Brian Gladman, Worcester, UK.
4
* Copyright (c) 2006, Rik Snel <
[email protected]
>
5
*
6
* Based on Dr Brian Gladman's (GPL'd) work published at
7
* http://fp.gladman.plus.com/cryptography_technology/index.htm
8
* See the original copyright notice below.
9
*
10
* This program is free software; you can redistribute it and/or modify it
11
* under the terms of the GNU General Public License as published by the Free
12
* Software Foundation; either version 2 of the License, or (at your option)
13
* any later version.
14
*/
15
/*
16
---------------------------------------------------------------------------
17
Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved.
18
19
LICENSE TERMS
20
21
The free distribution and use of this software in both source and binary
22
form is allowed (with or without changes) provided that:
23
24
1. distributions of this source code include the above copyright
25
notice, this list of conditions and the following disclaimer;
26
27
2. distributions in binary form include the above copyright
28
notice, this list of conditions and the following disclaimer
29
in the documentation and/or other associated materials;
30
31
3. the copyright holder's name is not used to endorse products
32
built using this software without specific written permission.
33
34
ALTERNATIVELY, provided that this notice is retained in full, this product
35
may be distributed under the terms of the GNU General Public License (GPL),
36
in which case the provisions of the GPL apply INSTEAD OF those given above.
37
38
DISCLAIMER
39
40
This software is provided 'as is' with no explicit or implied warranties
41
in respect of its properties, including, but not limited to, correctness
42
and/or fitness for purpose.
43
---------------------------------------------------------------------------
44
Issue Date: 13/06/2006
45
*/
46
47
#ifndef _CRYPTO_B128OPS_H
48
#define _CRYPTO_B128OPS_H
49
50
#include <linux/types.h>
51
52
typedef
struct
{
53
u64
a
,
b
;
54
}
u128
;
55
56
typedef
struct
{
57
__be64
a
,
b
;
58
}
be128
;
59
60
typedef
struct
{
61
__le64
b
,
a
;
62
}
le128
;
63
64
static
inline
void
u128_xor(
u128
*
r
,
const
u128
*
p
,
const
u128
*
q
)
65
{
66
r->
a
= p->
a
^ q->
a
;
67
r->
b
= p->
b
^ q->
b
;
68
}
69
70
static
inline
void
be128_xor(
be128
*
r
,
const
be128
*
p
,
const
be128
*
q
)
71
{
72
u128_xor((
u128
*)r, (
u128
*)p, (
u128
*)q);
73
}
74
75
static
inline
void
le128_xor(
le128
*r,
const
le128
*p,
const
le128
*q)
76
{
77
u128_xor((
u128
*)r, (
u128
*)p, (
u128
*)q);
78
}
79
80
#endif
/* _CRYPTO_B128OPS_H */
Generated on Thu Jan 10 2013 14:50:53 for Linux Kernel by
1.8.2