author | Misaki Miyashita <Misaki.Miyashita@Oracle.COM> |
Fri, 03 May 2013 16:10:11 -0700 | |
branch | s11-update |
changeset 2593 | b92e6df5eaf0 |
parent 682 | components/openssl/openssl-1.0.0/engines/t4/eng_t4_bignum.h@c6e4f94fd35d |
permissions | -rw-r--r-- |
682
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
1 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
2 |
* This product includes cryptographic software developed by the OpenSSL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
3 |
* Project for use in the OpenSSL Toolkit (http://www.openssl.org/). |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
4 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
5 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
6 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
7 |
* ==================================================================== |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
8 |
* Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
9 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
10 |
* Redistribution and use in source and binary forms, with or without |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
11 |
* modification, are permitted provided that the following conditions |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
12 |
* are met: |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
13 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
14 |
* 1. Redistributions of source code must retain the above copyright |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
15 |
* notice, this list of conditions and the following disclaimer. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
16 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
17 |
* 2. Redistributions in binary form must reproduce the above copyright |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
18 |
* notice, this list of conditions and the following disclaimer in |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
19 |
* the documentation and/or other materials provided with the |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
20 |
* distribution. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
21 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
22 |
* 3. All advertising materials mentioning features or use of this |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
23 |
* software must display the following acknowledgment: |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
24 |
* "This product includes software developed by the OpenSSL Project |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
25 |
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
26 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
27 |
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
28 |
* endorse or promote products derived from this software without |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
29 |
* prior written permission. For written permission, please contact |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
30 |
* [email protected]. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
31 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
32 |
* 5. Products derived from this software may not be called "OpenSSL" |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
33 |
* nor may "OpenSSL" appear in their names without prior written |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
34 |
* permission of the OpenSSL Project. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
35 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
36 |
* 6. Redistributions of any form whatsoever must retain the following |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
37 |
* acknowledgment: |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
38 |
* "This product includes software developed by the OpenSSL Project |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
39 |
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
40 |
* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
41 |
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
42 |
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
43 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
44 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
45 |
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
46 |
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
47 |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
48 |
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
49 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
50 |
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
51 |
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
52 |
* OF THE POSSIBILITY OF SUCH DAMAGE. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
53 |
* ==================================================================== |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
54 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
55 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
56 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
57 |
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
58 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
59 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
60 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
61 |
* This file is a copy of the ON gate's usr/src/common/bignum/bignum.h file |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
62 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
63 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
64 |
#ifndef _BIGNUM_H |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
65 |
#define _BIGNUM_H |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
66 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
67 |
#ifdef __cplusplus |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
68 |
extern "C" { |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
69 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
70 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
71 |
#include <sys/types.h> |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
72 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
73 |
#if defined(__sparcv9) || defined(__amd64) || defined(__sparc) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
74 |
/* 64-bit chunk size */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
75 |
#ifndef UMUL64 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
76 |
#define UMUL64 /* 64-bit multiplication results are supported */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
77 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
78 |
#else |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
79 |
#define BIGNUM_CHUNK_32 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
80 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
81 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
82 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
83 |
#define BITSINBYTE 8 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
84 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
85 |
/* Bignum "digits" (aka "chunks" or "words") are either 32- or 64-bits */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
86 |
#ifdef BIGNUM_CHUNK_32 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
87 |
#define BIG_CHUNK_SIZE 32 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
88 |
#define BIG_CHUNK_TYPE uint32_t |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
89 |
#define BIG_CHUNK_TYPE_SIGNED int32_t |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
90 |
#define BIG_CHUNK_HIGHBIT 0x80000000 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
91 |
#define BIG_CHUNK_ALLBITS 0xffffffff |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
92 |
#define BIG_CHUNK_LOWHALFBITS 0xffff |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
93 |
#define BIG_CHUNK_HALF_HIGHBIT 0x8000 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
94 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
95 |
#else |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
96 |
#define BIG_CHUNK_SIZE 64 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
97 |
#define BIG_CHUNK_TYPE uint64_t |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
98 |
#define BIG_CHUNK_TYPE_SIGNED int64_t |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
99 |
#define BIG_CHUNK_HIGHBIT 0x8000000000000000ULL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
100 |
#define BIG_CHUNK_ALLBITS 0xffffffffffffffffULL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
101 |
#define BIG_CHUNK_LOWHALFBITS 0xffffffffULL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
102 |
#define BIG_CHUNK_HALF_HIGHBIT 0x80000000ULL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
103 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
104 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
105 |
#define BITLEN2BIGNUMLEN(x) ((x) > 0 ? \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
106 |
((((x) - 1) / BIG_CHUNK_SIZE) + 1) : 0) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
107 |
#define CHARLEN2BIGNUMLEN(x) ((x) > 0 ? \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
108 |
((((x) - 1) / sizeof (BIG_CHUNK_TYPE)) + 1) : 0) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
109 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
110 |
#define BIGNUM_WORDSIZE (BIG_CHUNK_SIZE / BITSINBYTE) /* word size in bytes */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
111 |
#define BIG_CHUNKS_FOR_160BITS BITLEN2BIGNUMLEN(160) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
112 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
113 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
114 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
115 |
* leading 0's are permitted |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
116 |
* 0 should be represented by size>=1, size>=len>=1, sign=1, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
117 |
* value[i]=0 for 0<i<len |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
118 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
119 |
typedef struct { |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
120 |
/* size and len in units of BIG_CHUNK_TYPE words */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
121 |
uint32_t size; /* size of memory allocated for value */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
122 |
uint32_t len; /* number of valid data words in value */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
123 |
int sign; /* 1 for nonnegative, -1 for negative */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
124 |
int malloced; /* 1 if value was malloced, 0 if not */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
125 |
BIG_CHUNK_TYPE *value; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
126 |
} BIGNUM; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
127 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
128 |
#define BIGTMPSIZE 65 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
129 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
130 |
#define BIG_TRUE 1 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
131 |
#define BIG_FALSE 0 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
132 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
133 |
typedef int BIG_ERR_CODE; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
134 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
135 |
/* error codes */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
136 |
#define BIG_OK 0 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
137 |
#define BIG_NO_MEM -1 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
138 |
#define BIG_INVALID_ARGS -2 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
139 |
#define BIG_DIV_BY_0 -3 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
140 |
#define BIG_NO_RANDOM -4 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
141 |
#define BIG_GENERAL_ERR -5 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
142 |
#define BIG_TEST_FAILED -6 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
143 |
#define BIG_BUFFER_TOO_SMALL -7 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
144 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
145 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
146 |
* this is not an error code, but should be different from possible error codes |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
147 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
148 |
#define RND_TEST_VALUE_SUPPLIED -8 |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
149 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
150 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
151 |
#define arraysize(x) (sizeof (x) / sizeof (x[0])) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
152 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
153 |
typedef BIG_ERR_CODE (*big_modexp_ncp_func_ptr)(BIGNUM *result, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
154 |
BIGNUM *ma, BIGNUM *e, BIGNUM *n, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
155 |
BIGNUM *tmp, BIG_CHUNK_TYPE n0, void *ncp, void *req); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
156 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
157 |
typedef struct { |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
158 |
big_modexp_ncp_func_ptr func; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
159 |
void *ncp; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
160 |
void *reqp; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
161 |
} big_modexp_ncp_info_t; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
162 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
163 |
#ifdef YF_MODEXP |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
164 |
BIG_ERR_CODE big_modexp_ncp_yf(BIGNUM *result, BIGNUM *ma, BIGNUM *e, BIGNUM *n, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
165 |
BIGNUM *tmp, BIG_CHUNK_TYPE n0); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
166 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
167 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
168 |
#ifdef YF_MONTMUL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
169 |
BIG_ERR_CODE big_mont_mul_yf(BIGNUM *ret, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
170 |
BIGNUM *a, BIGNUM *b, BIGNUM *n, BIG_CHUNK_TYPE n0); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
171 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
172 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
173 |
#ifdef YF_MPMUL |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
174 |
BIG_ERR_CODE big_mp_mul_yf(BIGNUM *ret, BIGNUM *a, BIGNUM *b); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
175 |
void mpmul_arr_yf(uint64_t *res, uint64_t *m1, uint64_t *m2, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
176 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
177 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
178 |
#ifdef USE_FLOATING_POINT |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
179 |
void conv_d16_to_i32(uint32_t *i32, double *d16, int64_t *tmp, int ilen); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
180 |
void conv_i32_to_d32(double *d32, uint32_t *i32, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
181 |
void conv_i32_to_d16(double *d16, uint32_t *i32, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
182 |
void conv_i32_to_d32_and_d16(double *d32, double *d16, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
183 |
uint32_t *i32, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
184 |
void mont_mulf_noconv(uint32_t *result, double *dm1, double *dm2, double *dt, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
185 |
double *dn, uint32_t *nint, int nlen, double dn0); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
186 |
#endif /* USE_FLOATING_POINT */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
187 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
188 |
extern BIGNUM big_One; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
189 |
extern BIGNUM big_Two; |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
190 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
191 |
void printbignum(char *aname, BIGNUM *a); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
192 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
193 |
BIG_ERR_CODE big_init(BIGNUM *number, int size); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
194 |
BIG_ERR_CODE big_extend(BIGNUM *number, int size); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
195 |
void big_finish(BIGNUM *number); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
196 |
void bytestring2bignum(BIGNUM *bn, uchar_t *kn, size_t len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
197 |
void bignum2bytestring(uchar_t *kn, BIGNUM *bn, size_t len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
198 |
BIG_ERR_CODE big_mont_rr(BIGNUM *result, BIGNUM *n); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
199 |
BIG_ERR_CODE big_modexp(BIGNUM *result, BIGNUM *a, BIGNUM *e, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
200 |
BIGNUM *n, BIGNUM *n_rr); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
201 |
BIG_ERR_CODE big_modexp_ext(BIGNUM *result, BIGNUM *a, BIGNUM *e, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
202 |
BIGNUM *n, BIGNUM *n_rr, big_modexp_ncp_info_t *info); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
203 |
BIG_ERR_CODE big_modexp_crt(BIGNUM *result, BIGNUM *a, BIGNUM *dmodpminus1, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
204 |
BIGNUM *dmodqminus1, BIGNUM *p, BIGNUM *q, BIGNUM *pinvmodq, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
205 |
BIGNUM *p_rr, BIGNUM *q_rr); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
206 |
BIG_ERR_CODE big_modexp_crt_ext(BIGNUM *result, BIGNUM *a, BIGNUM *dmodpminus1, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
207 |
BIGNUM *dmodqminus1, BIGNUM *p, BIGNUM *q, BIGNUM *pinvmodq, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
208 |
BIGNUM *p_rr, BIGNUM *q_rr, big_modexp_ncp_info_t *info); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
209 |
int big_cmp_abs(BIGNUM *a, BIGNUM *b); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
210 |
BIG_ERR_CODE big_random(BIGNUM *r, size_t length, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
211 |
int (*rfunc)(void *, size_t), boolean_t precise); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
212 |
BIG_ERR_CODE big_div_pos(BIGNUM *result, BIGNUM *remainder, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
213 |
BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
214 |
BIG_ERR_CODE big_ext_gcd_pos(BIGNUM *gcd, BIGNUM *cm, BIGNUM *ce, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
215 |
BIGNUM *m, BIGNUM *e); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
216 |
BIG_ERR_CODE big_add(BIGNUM *result, BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
217 |
BIG_ERR_CODE big_add_abs(BIGNUM *result, BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
218 |
void big_mul_arr_64(uint64_t *result, uint64_t *a, uint64_t *b, int alen); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
219 |
BIG_ERR_CODE big_mul(BIGNUM *result, BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
220 |
void big_shiftright(BIGNUM *result, BIGNUM *aa, int offs); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
221 |
BIG_ERR_CODE big_nextprime_pos(BIGNUM *result, BIGNUM *n); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
222 |
BIG_ERR_CODE big_nextprime_pos_ext(BIGNUM *result, BIGNUM *n, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
223 |
big_modexp_ncp_info_t *info); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
224 |
BIG_ERR_CODE big_sub_pos(BIGNUM *result, BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
225 |
BIG_ERR_CODE big_copy(BIGNUM *dest, BIGNUM *src); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
226 |
BIG_ERR_CODE big_sub(BIGNUM *result, BIGNUM *aa, BIGNUM *bb); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
227 |
int big_bitlength(BIGNUM *n); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
228 |
BIG_ERR_CODE big_init1(BIGNUM *number, int size, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
229 |
BIG_CHUNK_TYPE *buf, int bufsize); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
230 |
BIG_ERR_CODE big_mont_mul(BIGNUM *ret, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
231 |
BIGNUM *a, BIGNUM *b, BIGNUM *n, BIG_CHUNK_TYPE n0); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
232 |
int big_is_zero(BIGNUM *n); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
233 |
BIG_CHUNK_TYPE big_n0(BIG_CHUNK_TYPE n); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
234 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
235 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
236 |
/* |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
237 |
* Kernel bignum module: module integrity test |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
238 |
*/ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
239 |
extern int bignum_fips_check(void); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
240 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
241 |
#if defined(HWCAP) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
242 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
243 |
#if (BIG_CHUNK_SIZE != 32) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
244 |
#error HWCAP works only with 32-bit bignum chunks |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
245 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
246 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
247 |
#define BIG_MUL_SET_VEC(r, a, len, digit) \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
248 |
(*big_mul_set_vec_impl)(r, a, len, digit) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
249 |
#define BIG_MUL_ADD_VEC(r, a, len, digit) \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
250 |
(*big_mul_add_vec_impl)(r, a, len, digit) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
251 |
#define BIG_MUL_VEC(r, a, alen, b, blen) \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
252 |
(*big_mul_vec_impl)(r, a, alen, b, blen) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
253 |
#define BIG_SQR_VEC(r, a, len) \ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
254 |
(*big_sqr_vec_impl)(r, a, len) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
255 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
256 |
extern BIG_CHUNK_TYPE (*big_mul_set_vec_impl) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
257 |
(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int len, BIG_CHUNK_TYPE digit); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
258 |
extern BIG_CHUNK_TYPE (*big_mul_add_vec_impl) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
259 |
(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int len, BIG_CHUNK_TYPE digit); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
260 |
extern void (*big_mul_vec_impl) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
261 |
(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int alen, BIG_CHUNK_TYPE *b, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
262 |
int blen); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
263 |
extern void (*big_sqr_vec_impl) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
264 |
(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
265 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
266 |
#else /* ! HWCAP */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
267 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
268 |
#define BIG_MUL_SET_VEC(r, a, len, digit) big_mul_set_vec(r, a, len, digit) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
269 |
#define BIG_MUL_ADD_VEC(r, a, len, digit) big_mul_add_vec(r, a, len, digit) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
270 |
#define BIG_MUL_VEC(r, a, alen, b, blen) big_mul_vec(r, a, alen, b, blen) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
271 |
#define BIG_SQR_VEC(r, a, len) big_sqr_vec(r, a, len) |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
272 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
273 |
extern BIG_CHUNK_TYPE big_mul_set_vec(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
274 |
int len, BIG_CHUNK_TYPE d); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
275 |
extern BIG_CHUNK_TYPE big_mul_add_vec(BIG_CHUNK_TYPE *r, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
276 |
BIG_CHUNK_TYPE *a, int len, BIG_CHUNK_TYPE d); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
277 |
extern void big_mul_vec(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int alen, |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
278 |
BIG_CHUNK_TYPE *b, int blen); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
279 |
extern void big_sqr_vec(BIG_CHUNK_TYPE *r, BIG_CHUNK_TYPE *a, int len); |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
280 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
281 |
#endif /* HWCAP */ |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
282 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
283 |
#ifdef __cplusplus |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
284 |
} |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
285 |
#endif |
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
286 |
|
c6e4f94fd35d
7116525 OpenSSL t4 engine improvements: montgomery multiply
Ferenc Rakoczi <Ferenc.Rakoczi@Sun.COM>
parents:
diff
changeset
|
287 |
#endif /* _BIGNUM_H */ |