123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /* b128ops.h - common 128-bit block operations
- *
- * Copyright (c) 2003, Dr Brian Gladman, Worcester, UK.
- * Copyright (c) 2006, Rik Snel <rsnel@cube.dyndns.org>
- *
- * Based on Dr Brian Gladman's (GPL'd) work published at
- * http://fp.gladman.plus.com/cryptography_technology/index.htm
- * See the original copyright notice below.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- */
- /*
- ---------------------------------------------------------------------------
- Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved.
- LICENSE TERMS
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
- DISCLAIMER
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 13/06/2006
- */
- #ifndef _CRYPTO_B128OPS_H
- #define _CRYPTO_B128OPS_H
- #include <linux/types.h>
- typedef struct {
- u64 a, b;
- } u128;
- typedef struct {
- __be64 a, b;
- } be128;
- typedef struct {
- __le64 b, a;
- } le128;
- static inline void u128_xor(u128 *r, const u128 *p, const u128 *q)
- {
- r->a = p->a ^ q->a;
- r->b = p->b ^ q->b;
- }
- static inline void be128_xor(be128 *r, const be128 *p, const be128 *q)
- {
- u128_xor((u128 *)r, (u128 *)p, (u128 *)q);
- }
- static inline void le128_xor(le128 *r, const le128 *p, const le128 *q)
- {
- u128_xor((u128 *)r, (u128 *)p, (u128 *)q);
- }
- #endif /* _CRYPTO_B128OPS_H */
|