/
ROM.go
44 lines (35 loc) · 1.78 KB
/
ROM.go
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
* Copyright (c) 2012-2020 MIRACL UK Ltd.
*
* This file is part of MIRACL Core
* (see https://github.com/miracl/core).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* Fixed Data in ROM - Field and Curve parameters */
package SM2
// Base Bits= 56
var Modulus = [...]Chunk{0xFFFFFFFFFFFFFF, 0xFFFF00000000FF, 0xFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFF, 0xFFFFFFFE}
var ROI = [...]Chunk{0xFFFFFFFFFFFFFE, 0xFFFF00000000FF, 0xFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFF, 0xFFFFFFFE}
var R2modp = [...]Chunk{0x3000000040000, 0xFFFFFFFE000000, 0x300000002, 0x10000000100, 0x60000}
const MConst Chunk = 0x1
//*** rom curve parameters *****
// Base Bits= 56
const CURVE_Cof_I int = 1
var CURVE_Cof = [...]Chunk{0x1, 0x0, 0x0, 0x0, 0x0}
const CURVE_B_I int = 0
var CURVE_B = [...]Chunk{0xBCBD414D940E93, 0x89F515AB8F92DD, 0x4BCF6509A7F397, 0x9D9F5E344D5A9E, 0x28E9FA9E}
var CURVE_Order = [...]Chunk{0xBBF40939D54123, 0xDF6B21C6052B53, 0xFFFFFFFFFF7203, 0xFFFFFFFFFFFFFF, 0xFFFFFFFE}
var CURVE_Gx = [...]Chunk{0x5A4589334C74C7, 0xBBFF2660BE171, 0x466A39C9948FE3, 0x1F1981195F9904, 0x32C4AE2C}
var CURVE_Gy = [...]Chunk{0xDF32E52139F0A0, 0x877CC62A474002, 0xE36B692153D0A9, 0xF4F6779C59BDCE, 0xBC3736A2}
var CURVE_HTPC = [...]Chunk{0xFFFFFFFFFFFFFF, 0xFFFF55555555FF, 0xFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFF, 0xAAAAAAA9}