http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/swift/readme.txt
----------------------------------------------------------------------
diff --git a/swift/readme.txt b/swift/readme.txt
deleted file mode 100644
index 708054d..0000000
--- a/swift/readme.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-AMCL is very simple to build for Swift.
-
-First - decide the modulus and curve type you want to use. Edit rom.swift 
-where indicated. You will probably want to use one of the curves whose 
-details are already in there.
-
-Three example API files are provided, mpin.swift which 
-supports our M-Pin (tm) protocol, ecdh.swift which supports elliptic 
-curve key exchange, digital signature and public key crypto, and rsa.swift
-which supports the RSA method. The first  can be tested using the 
-TestMPIN.swift driver programs, the second can be tested using TestECDH.swift 
-and TestECM.swift, and the third with TestRSA.swift
-
-In the rom.swift file you must provide the curve constants. Several examples
-are provided there, if you are willing to use one of these.
-
-For a quick jumpstart:-
-
-From a terminal window in a /lib directory create a dynamic library using the 
command
-
-swiftc big.swift rom.swift dbig.swift rand.swift hash.swift fp.swift fp2.swift 
ecp.swift ecp2.swift aes.swift gcm.swift fp4.swift fp12.swift ff.swift 
pair.swift rsa.swift ecdh.swift mpin.swift -Ounchecked 
-whole-module-optimization -emit-library -emit-module -module-name clint
-
-This creates the files 
-
-libclint.dylib
-clint.swiftmodule
-
-Copy these to a project directory, which contains only the files 
-
-TestECDH.swift
-TestRSA.swift
-TestMPIN.swift
-
-And create and run the projects by issuing the commands
-
-swift -lclint -I. TestMPIN.swift 
-swift -lclint -I. TestECDH.swift 
-swift -lclint -I. TestRSA.swift 
-
-Note that classes and methods that need to be exposed to consuming programs, 
-should be made "public" when and if needed. Here we have done this as needed 
-just for these example programs
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/swift/rom.swift
----------------------------------------------------------------------
diff --git a/swift/rom.swift b/swift/rom.swift
deleted file mode 100644
index aaf6c76..0000000
--- a/swift/rom.swift
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you 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.
-*/
-//
-//  rom.swift
-//  
-//
-//  Created by Michael Scott on 12/06/2015.
-//  Copyright (c) 2015 Michael Scott. All rights reserved.
-//
-
-final public class ROM{
-    static let NLEN:Int=9
-    static let CHUNK:Int=32
-    static let DNLEN:Int=2*NLEN
-
-/*** Enter Some Field details here  ***/
-    // BN Curve
-    static let MODBITS:Int32 = 254 /* Number of bits in Modulus */
-    static let MOD8:Int32 = 3   /* Modulus mod 8 */
-    // Curve 25519
-//    static let MODBITS:Int32=255
-//    static let MOD8:Int32=5
-
-    // NIST256 or Brainpool
-//    static let MODBITS:Int32=256
-//    static let MOD8:Int32=7
-
-    // MF254
-//    static let MODBITS:Int32=254
-//    static let MOD8:Int32=7
-    // MS255
-//    static let MODBITS:Int32 = 255
-//    static let MOD8:Int32 = 3
-    // MF256
-//    static let MODBITS:Int32 = 256
-//    static let MOD8:Int32 = 7
-    // MS256
-//    static let MODBITS:Int32 = 256
-//    static let MOD8:Int32 = 3
-
-    // ANSSI
-//    static let MODBITS:Int32 = 256
-//    static let MOD8:Int32 = 3
-
-    static let BASEBITS:Int32=29
-    static let OMASK:Int32=Int32(-1)<<Int32(MODBITS%BASEBITS)
-    static let MASK:Int32=((Int32(1)<<BASEBITS)-Int32(1))
-    static let TBITS:Int32=MODBITS%BASEBITS; // Number of active bits in top 
word
-    static let TMASK:Int32=(Int32(1)<<TBITS)-1;
-    static let MODBYTES:Int32=32
-    static let NEXCESS:Int32 = (Int32(1)<<(Int32(CHUNK)-BASEBITS-1))
-    static let FEXCESS:Int32 = (Int32(1)<<(BASEBITS*Int32(NLEN)-MODBITS));
-
-    /* Don't Modify from here... */
-    static let NOT_SPECIAL=0
-    static let PSEUDO_MERSENNE=1
-    static let MONTGOMERY_FRIENDLY=2
-    static let WEIERSTRASS=0
-    static let EDWARDS=1
-    static let MONTGOMERY=2
-    /* ...to here */
-
-
-    /* Finite field support - for RSA, DH etc. */
-    static let FF_BITS:Int=2048; /* Finite Field Size in bits - must be 
256.2^n */
-    static public let FFLEN=(FF_BITS/256)
-    static public let HFLEN=(FFLEN/2);  /* Useful for half-size RSA private 
key operations */
-
-// START SPECIFY FIELD DETAILS HERE
-//*********************************************************************************
-// Curve25519 Modulus
-//    static let MODTYPE=PSEUDO_MERSENNE
-//    static let 
Modulus:[Int32]=[0x1FFFFFED,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x7FFFFF]
-//    static let MConst:Int32=19
-
-// NIST-256 Modulus
-//    static let MODTYPE=NOT_SPECIAL
-//    static let 
Modulus:[Int32]=[0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FF,0x0,0x0,0x40000,0x1FE00000,0xFFFFFF]
-//    static let MConst:Int32=1
-
-// MF254 Modulus
-//    static let MODTYPE=MONTGOMERY_FRIENDLY
-//    static let 
Modulus:[Int32]=[0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3F80FF]
-//    static let MConst:Int32=0x3F8100
-// MS255 Modulus
-//    static let MODTYPE = PSEUDO_MERSENNE
-//    static let 
Modulus:[Int32]=[0x1FFFFD03,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x7FFFFF]
-//    static let MConst:Int32=0x2FD
-// MF256 Modulus
-//    static let MODTYPE = MONTGOMERY_FRIENDLY
-//    static let 
Modulus:[Int32]=[0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFFA7FF]
-//    static let MConst:Int32=0xFFA800
-// MS256 Modulus
-//    static let MODTYPE = PSEUDO_MERSENNE
-//    static let 
Modulus:[Int32]=[0x1FFFFF43,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFFFFFF]
-//    static let MConst:Int32 = 0xBD
-    // Brainpool Modulus
-//    static let MODTYPE = NOT_SPECIAL
-//    static let 
Modulus:[Int32]=[0x1F6E5377,0x9A40E8,0x9880A08,0x17EC47AA,0x18D726E3,0x5484EC1,0x6F0F998,0x1B743DD5,0xA9FB57]
-//    static let MConst:Int32 = 0xEFD89B9
-    // ANSSI Modulus
-//    static let MODTYPE = NOT_SPECIAL
-//    static let 
Modulus:[Int32]=[0x186E9C03,0x7E79A9E,0x12329B7A,0x35B7957,0x435B396,0x16F46721,0x163C4049,0x1181675A,0xF1FD17]
-//    static let MConst:Int32 = 0x164E1155
-
-    // BNCX Curve Modulus
-    static let MODTYPE = NOT_SPECIAL
-    static let 
Modulus:[Int32]=[0x1C1B55B3,0x13311F7A,0x24FB86F,0x1FADDC30,0x166D3243,0xFB23D31,0x836C2F7,0x10E05,0x240000]
-    static let MConst:Int32=0x19789E85
-
-
-    // START SPECIFY CURVE DETAILS HERE
-    
//*********************************************************************************
-    // Original Curve25519
-    //         static let CURVETYPE=MONTGOMERY
-    // static let CURVE_A:Int32 = 486662
-    // static let CURVE_B:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-    // static let 
CURVE_Order:[Int32]=[0x1CF5D3ED,0x9318D2,0x1DE73596,0x1DF3BD45,0x14D,0x0,0x0,0x0,0x100000]
-    // static let CURVE_Gx:[Int32]=[0x9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    // static let CURVE_Gy:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // 
not used
-// Ed25519 Curve
-    //static let CURVETYPE=EDWARDS
-    //static let CURVE_A:Int32 = -1
-    //static let 
CURVE_B:[Int32]=[0x135978A3,0xF5A6E50,0x10762ADD,0x149A82,0x1E898007,0x3CBBBC,0x19CE331D,0x1DC56DFF,0x52036C]
-    //static let 
CURVE_Order:[Int32]=[0x1CF5D3ED,0x9318D2,0x1DE73596,0x1DF3BD45,0x14D,0x0,0x0,0x0,0x100000]
-    //static let 
CURVE_Gx:[Int32]=[0xF25D51A,0xAB16B04,0x969ECB2,0x198EC12A,0xDC5C692,0x1118FEEB,0xFFB0293,0x1A79ADCA,0x216936]
-    //static let 
CURVE_Gy:[Int32]=[0x6666658,0x13333333,0x19999999,0xCCCCCCC,0x6666666,0x13333333,0x19999999,0xCCCCCCC,0x666666]
-
-// NIST-256 Curve
-    // static let CURVETYPE=WEIERSTRASS
-    //    static let CURVE_A:Int32 = -3;
-    //    static let 
CURVE_B:[Int32]=[0x7D2604B,0x1E71E1F1,0x14EC3D8E,0x1A0D6198,0x86BC651,0x1EAABB4C,0xF9ECFAE,0x1B154752,0x5AC635]
-    //    static let 
CURVE_Order:[Int32]=[0x1C632551,0x1DCE5617,0x5E7A13C,0xDF55B4E,0x1FFFFBCE,0x1FFFFFFF,0x3FFFF,0x1FE00000,0xFFFFFF]
-    //    static let 
CURVE_Gx:[Int32]=[0x1898C296,0x509CA2E,0x1ACCE83D,0x6FB025B,0x40F2770,0x1372B1D2,0x91FE2F3,0x1E5C2588,0x6B17D1]
-    //    static let 
CURVE_Gy:[Int32]=[0x17BF51F5,0x1DB20341,0xC57B3B2,0x1C66AED6,0x19E162BC,0x15A53E07,0x1E6E3B9F,0x1C5FC34F,0x4FE342]
-
-    // MF254 Modulus, Weierstrass Curve w-254-mont
-    //    static let CURVETYPE=WEIERSTRASS
-    //    static let CURVE_A:Int32 = -3
-    //    static let 
CURVE_B:[Int32]=[0x1FFFD08D,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3F80FF]
-    //    static let 
CURVE_Order:[Int32]=[0xF8DF83F,0x1D20CE25,0x8DD701B,0x317D41B,0x1FFFFEB8,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3F80FF]
-    //    static let CURVE_Gx:[Int32]=[0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //    static let 
CURVE_Gy:[Int32]=[0x190D4EBC,0xB2EF9BF,0x14464C6B,0xE71C7F0,0x18AEBDFB,0xD3ADEBB,0x18052B85,0x1A6765CA,0x140E3F]
-
-    // MF254 Modulus, Edwards Curve ed-254-mont
-    //    static let CURVETYPE = EDWARDS
-    //    static let CURVE_A:Int32 = -1
-    //    static let CURVE_B:[Int32]=[0x367B,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //    static let 
CURVE_Order:[Int32]=[0x46E98C7,0x179E9FF6,0x158BEC3A,0xA60D917,0x1FFFFEB9,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFE03F]
-    //    static let CURVE_Gx:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //    static let 
CURVE_Gy:[Int32]=[0xF2701E5,0x29687ED,0xC84861F,0x535081C,0x3F4E363,0x6A811B,0xCD65474,0x121AD498,0x19F0E6]
-
-    // MF254 Modulus, Montgomery Curve
-    //static let CURVETYPE = MONTGOMERY
-    //static let CURVE_A:Int32 = -55790;
-    //static let CURVE_B:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-    //static let 
CURVE_Order:[Int32]=[0x46E98C7,0x179E9FF6,0x158BEC3A,0xA60D917,0x1FFFFEB9,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFE03F]
-    //static let CURVE_Gx:[Int32]=[0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let CURVE_Gy:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-
-    // MS255 Modulus, Weierstrass Curve
-    //static let CURVETYPE = WEIERSTRASS
-    //static let CURVE_A:Int32 = -3
-    //static let 
CURVE_B:[Int32]=[0x1FFFAB46,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x7FFFFF]
-    //static let 
CURVE_Order:[Int32]=[0x1C594AEB,0x1C7D64C1,0x14ACF7EA,0x14705075,0x1FFFF864,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x7FFFFF]
-    //static let CURVE_Gx:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0x9CB44BA,0x199FFB3B,0x1F698345,0xD8F19BB,0x17D177DB,0x1FFCD97F,0xCE487A,0x181DB74F,0x6F7A6A]
-
-    // MS255 Modulus, Edwards Curve
-    //static let CURVETYPE = EDWARDS
-    //static let CURVE_A:Int32 = -1
-    //static let CURVE_B:[Int32]=[0xEA97,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Order:[Int32]=[0x436EB75,0x24E8F68,0x9A0CBAB,0x34F0BDB,0x1FFFFDCF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFF]
-    //static let CURVE_Gx:[Int32]=[0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0x108736A0,0x11512ADE,0x1116916E,0x29715DA,0x47E5529,0x66EC706,0x1517B095,0xA694F76,0x26CB78]
-
-    // MS255 Modulus, Montgomery Curve
-    //static let CURVETYPE=MONTGOMERY
-    //static let CURVE_A:Int32 = -240222
-    //static let CURVE_B:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-    //static let 
CURVE_Order:[Int32]=[0x436EB75,0x24E8F68,0x9A0CBAB,0x34F0BDB,0x1FFFFDCF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFF]
-    //static let CURVE_Gx:[Int32]=[0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let CURVE_Gy:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-
-    // MF256 Modulus, Weierstrass Curve
-    //static let CURVETYPE = WEIERSTRASS
-    //static let CURVE_A:Int32 = -3;
-    //static let CURVE_B:[Int32]=[0x14E6A,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Order:[Int32]=[0x79857EB,0x8862F0D,0x1941D2E7,0x2EA27CD,0x1FFFFFC5,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFFA7FF]
-    //static let CURVE_Gx:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0xB724D2A,0x3CAA61,0x5371984,0x128FD71B,0x1AE28956,0x1D13091E,0x339EEAE,0x10F7C301,0x20887C]
-
-    // MF256, Edwards Curve
-    //static let CURVETYPE = EDWARDS
-    //static let CURVE_A:Int32 = -1
-    //static let CURVE_B:[Int32]=[0x350A,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Order:[Int32]=[0x18EC7BAB,0x16C976F6,0x19CCF259,0x9775F70,0x1FFFFB15,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3FE9FF]
-    //static let CURVE_Gx:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0x12F3C908,0xF553917,0x1FA9A35F,0xBCC91B,0x1AACA0C,0x1779ED96,0x156BABAF,0x1F1F1989,0xDAD8D4]
-
-    // MF256 Modulus, Montgomery Curve
-    //static let CURVETYPE = MONTGOMERY
-    //static let CURVE_A:Int32 = -54314
-    //static let CURVE_B:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-    //static let 
CURVE_Order:[Int32]=[0x18EC7BAB,0x16C976F6,0x19CCF259,0x9775F70,0x1FFFFB15,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3FE9FF]
-    //static let CURVE_Gx:[Int32]=[0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let CURVE_Gy:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-
-    // MS256, Weierstrass Curve
-    //static let CURVETYPE  = WEIERSTRASS
-    //static let CURVE_A:Int32 = -3
-    //static let CURVE_B:[Int32]=[0x25581,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Order:[Int32]=[0x751A825,0x559014A,0x9971808,0x1904EBD4,0x1FFFFE43,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFFFFFF]
-    //static let CURVE_Gx:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0x2B56C77,0x1FA31836,0x253B042,0x185F26EB,0xDD6BD02,0x4B66777,0x1B5FF20B,0xA783C8C,0x696F18]
-
-    // MS256, Edwards Curve
-    //static let CURVETYPE = EDWARDS
-    //static let CURVE_A:Int32 = -1;
-    //static let CURVE_B:[Int32]=[0x3BEE,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Order:[Int32]=[0x1122B4AD,0xDC27378,0x9AF1939,0x154AB5A1,0x1FFFFBE6,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3FFFFF]
-    //static let CURVE_Gx:[Int32]=[0xD,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let 
CURVE_Gy:[Int32]=[0x131CADBA,0x3FB7DA9,0x134C0FDC,0x14DAC704,0x46BFBE2,0x1859CFD0,0x1B6E8F4C,0x3C5424E,0x7D0AB4]
-
-    // MS256 Modulus, Montgomery Curve
-    //static let CURVETYPE = MONTGOMERY
-    //static let CURVE_A:Int32 = -61370
-    //static let CURVE_B:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-    //static let 
CURVE_Order:[Int32]=[0x1122B4AD,0xDC27378,0x9AF1939,0x154AB5A1,0x1FFFFBE6,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x3FFFFF]
-    //static let CURVE_Gx:[Int32]=[0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    //static let CURVE_Gy:[Int32]=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0] // not 
used
-
-    // Brainpool
-    //static let CURVETYPE = WEIERSTRASS
-    //static let CURVE_A:Int32 = -3
-    //static let 
CURVE_B:[Int32]=[0x1EE92B04,0x172C080F,0xBD2495A,0x7D7895E,0x176B7BF9,0x13B99E85,0x1A93F99A,0x18861B09,0x662C61]
-    //static let 
CURVE_Order:[Int32]=[0x174856A7,0xF07414,0x1869BDE4,0x12F5476A,0x18D718C3,0x5484EC1,0x6F0F998,0x1B743DD5,0xA9FB57]
-    //static let 
CURVE_Gx:[Int32]=[0xE1305F4,0xD0C8AB1,0xBEF0ADE,0x28588F5,0x16149AFA,0x9D91D32,0x1EDDCC88,0x79839FC,0xA3E8EB]
-    //static let 
CURVE_Gy:[Int32]=[0x1B25C9BE,0xD5F479A,0x1409C007,0x196DBC73,0x417E69B,0x1170A322,0x15B5FDEC,0x10468738,0x2D996C]
-
-    // ANSSI
-    //static let CURVETYPE = WEIERSTRASS
-    //static let CURVE_A:Int32 = -3;
-    //static let 
CURVE_B:[Int32]=[0x1B7BB73F,0x3AF6CB3,0xC68600C,0x181935C9,0xC00FDFE,0x1D3AA522,0x4C0352A,0x194A8515,0xEE353F]
-    //static let 
CURVE_Order:[Int32]=[0x6D655E1,0x1FEEA2CE,0x14AFE507,0x18CFC281,0x435B53D,0x16F46721,0x163C4049,0x1181675A,0xF1FD17]
-    //static let 
CURVE_Gx:[Int32]=[0x198F5CFF,0x64BD16E,0x62DC059,0xFA5B95F,0x23958C2,0x1EA3A4EA,0x7ACC460,0x186AD827,0xB6B3D4]
-    //static let 
CURVE_Gy:[Int32]=[0x14062CFB,0x188AD0AA,0x19327860,0x3860FD1,0xEF8C270,0x18F879F6,0x12447E49,0x1EF91640,0x6142E0]
-
-    // BNCX Curve
-
-    static let CURVETYPE = WEIERSTRASS
-    static let CURVE_A:Int32 = 0
-    static let CURVE_B:[Int32]=[0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    static let 
CURVE_Order:[Int32]=[0x16EB1F6D,0x108E0531,0x1241B3AF,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000]
-    static let CURVE_Bnx:[Int32]=[0x3C012B1,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0]
-    static let 
CURVE_Cru:[Int32]=[0x14235C97,0xF0498BC,0x1BE1D58C,0x1BBEC8E3,0x3F1440B,0x654,0x12000,0x0,0x0]
-    static let 
CURVE_Fra:[Int32]=[0x15C80EA3,0x1EC8419A,0x1CFE0856,0xEE64DE2,0x11898686,0x5C55653,0x592BF86,0x5F4C740,0x135908]
-    static let 
CURVE_Frb:[Int32]=[0x6534710,0x1468DDE0,0x551B018,0x10C78E4D,0x4E3ABBD,0x9ECE6DE,0x2A40371,0x1A0C46C5,0x10A6F7]
-    static let 
CURVE_Pxa:[Int32]=[0x4D2EC74,0x428E777,0xF89C9B0,0x190B7F40,0x14BBB907,0x12807AE1,0x958D62C,0x58E0A76,0x19682D]
-    static let 
CURVE_Pxb:[Int32]=[0xE29CFE1,0x1D2C7459,0x270C3D1,0x172F6184,0x19743F81,0x49BD474,0x192A8047,0x1D87C33E,0x1466B9]
-    static let 
CURVE_Pya:[Int32]=[0xF0BE09F,0x7DFE75E,0x1FB06CC3,0x3667B08,0xE209636,0x110ABED7,0xE376078,0x1B2E4665,0xA79ED]
-    static let 
CURVE_Pyb:[Int32]=[0x898EE9D,0xC825914,0x14BB7AFB,0xC9D4AD3,0x13461C28,0x122896C6,0x240D71B,0x73D9898,0x6160C]
-    static let 
CURVE_Gx:[Int32]=[0x1C1B55B2,0x13311F7A,0x24FB86F,0x1FADDC30,0x166D3243,0xFB23D31,0x836C2F7,0x10E05,0x240000]
-    static let CURVE_Gy:[Int32]=[0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]
-    static let 
CURVE_W:[[Int32]]=[[0x162FEB83,0x2A31A48,0x100E0480,0x16,0x600,0x0,0x0,0x0,0x0],[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0]]
-
-
-    static let 
CURVE_SB:[[[Int32]]]=[[[0x1DB010E4,0x2A31A48,0x100E04A0,0x16,0x600,0x0,0x0,0x0,0x0],[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0],[0xBB33EA,0xDEAEAE9,0x233AF2F,0x1FADDC03,0x166D2643,0xFB23D31,0x836C2F7,0x10E05,0x240000]]]
-
-    static let 
CURVE_WB:[[Int32]]=[[0x167A84B0,0xE108C2,0x1004AC10,0x7,0x200,0x0,0x0,0x0,0x0],[0x1E220475,0x166FCCAD,0x129FE68D,0x1D29DB51,0x2A0DC07,0x438,0xC000,0x0,0x0],[0xF10B93,0x1B37E657,0x194FF34E,0x1E94EDA8,0x1506E03,0x21C,0x6000,0x0,0x0],[0x1DFAAA11,0xE108C2,0x1004AC30,0x7,0x200,0x0,0x0,0x0,0x0]]
-
-    static let 
CURVE_BB:[[[Int32]]]=[[[0x132B0CBD,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x132B0CBC,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x132B0CBC,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x7802562,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0],[0x132B0CBC,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x132B0CBD,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x132B0CBC,0x108E0531,0x1241B39F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000]],[[0x7802562,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0],[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0],[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0],[0x7802561,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x3C012B2,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0],[0xF004AC2,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0],[0xF6AFA0A,0x108E0531,0x1241B
 
38F,0x1FADDC19,0x166D2C43,0xFB23D31,0x836C2F7,0x10E05,0x240000],[0x3C012B2,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0]]]
-
-    static let USE_GLV = true
-    static let USE_GS_G2 = true
-    static let USE_GS_GT = true
-    static let GT_STRONG = true
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/swift/rsa.swift
----------------------------------------------------------------------
diff --git a/swift/rsa.swift b/swift/rsa.swift
deleted file mode 100644
index 1c6ac27..0000000
--- a/swift/rsa.swift
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you 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.
-*/
-//
-//  rsa.swift
-//  
-//
-//  Created by Michael Scott on 25/06/2015.
-//  Copyright (c) 2015 Michael Scott. All rights reserved.
-//
-
-import Foundation
-
-/* RSA API high-level functions  */
-
-final public class rsa_private_key {
-    var p:FF
-    var q:FF
-    var dp:FF
-    var dq:FF
-    var c:FF
-
-    public init(_ n: Int)
-    {
-    p=FF(n);
-    q=FF(n);
-    dp=FF(n);
-    dq=FF(n);
-    c=FF(n);
-    }
-}
-
-final public class rsa_public_key
-{
-    var e:Int32
-    var n:FF
-
-    public init(_ m:Int)
-    {
-        e=0;
-        n=FF(m);
-    }
-}
-
-final public class RSA {
-
-    static public let RFS=Int(ROM.MODBYTES)*ROM.FFLEN
-
-    /* generate an RSA key pair */
-
-    static public func KEY_PAIR(rng: RAND,_ e:Int32,_ PRIV:rsa_private_key,_ 
PUB:rsa_public_key)
-    { /* IEEE1363 A16.11/A16.12 more or less */
-
-        let n=PUB.n.getlen()/2;
-        let t = FF(n);
-        let p1=FF(n);
-        let q1=FF(n);
-
-        while true
-        {
-
-            PRIV.p.random(rng);
-            while PRIV.p.lastbits(2) != 3 {PRIV.p.inc(1)}
-            while !FF.prime(PRIV.p,rng) {PRIV.p.inc(4)}
-
-            p1.copy(PRIV.p);
-            p1.dec(1);
-
-            if p1.cfactor(e) {continue}
-            break;
-        }
-
-        while true
-        {
-            PRIV.q.random(rng);
-            while PRIV.q.lastbits(2) != 3 {PRIV.q.inc(1)}
-            while !FF.prime(PRIV.q,rng) {PRIV.q.inc(4)}
-
-            q1.copy(PRIV.q);
-            q1.dec(1);
-
-            if q1.cfactor(e) {continue}
-
-            break;
-        }
-
-        PUB.n=FF.mul(PRIV.p,PRIV.q);
-        PUB.e=e;
-
-        t.copy(p1);
-        t.shr();
-        PRIV.dp.set(e);
-        PRIV.dp.invmodp(t);
-        if (PRIV.dp.parity()==0) {PRIV.dp.add(t)}
-        PRIV.dp.norm();
-
-        t.copy(q1);
-        t.shr();
-        PRIV.dq.set(e);
-        PRIV.dq.invmodp(t);
-        if (PRIV.dq.parity()==0) {PRIV.dq.add(t)}
-        PRIV.dq.norm();
-
-        PRIV.c.copy(PRIV.p);
-        PRIV.c.invmodp(PRIV.q);
-
-        return;
-    }
-    /* Mask Generation Function */
-
-    static func MGF1(Z: [UInt8],_ olen:Int,inout _ K:[UInt8])
-    {
-        let H=HASH();
-        let hlen=HASH.len;
-
-        var k=0;
-        for var i=0;i<K.count;i++ {K[i]=0}
-
-        var cthreshold=Int32(olen/hlen); if (olen%hlen != 0) {cthreshold++}
-        for var counter:Int32=0;counter<cthreshold;counter++
-        {
-            H.process_array(Z);
-            H.process_num(counter);
-            var B=H.hash();
-
-            if (k+hlen>olen) {for var i=0;i<olen%hlen;i++ {K[k++]=B[i]}}
-            else {for var i=0;i<hlen;i++ {K[k++]=B[i]}}
-        }
-    }
-
-    static public func printBinary(array: [UInt8])
-    {
-        for var i=0;i<array.count;i++
-        {
-            let h=String(array[i],radix:16)
-            print("\(h)", terminator: "")
-        }
-        print("");
-    }
-    /* OAEP Message Encoding for Encryption */
-    static public func OAEP_ENCODE(m:[UInt8],_ rng:RAND,_ p:[UInt8]?) -> 
[UInt8]
-    {
-        let olen=RFS-1;
-        let mlen=m.count;
-        var f=[UInt8](count:RSA.RFS,repeatedValue:0)
-
-        let H=HASH();
-        let hlen=HASH.len;
-        var SEED=[UInt8](count:hlen,repeatedValue:0)
-        let seedlen=hlen;
-        if (mlen>olen-hlen-seedlen-1) {return [UInt8]()}
-
-        var DBMASK=[UInt8](count:olen-seedlen,repeatedValue:0)
-
-        if ((p) != nil) {H.process_array(p!)}
-        var h=H.hash();
-        for var i=0;i<hlen;i++ {f[i]=h[i]}
-
-        let slen=olen-mlen-hlen-seedlen-1;
-
-        for var i=0;i<slen;i++ {f[hlen+i]=0}
-        f[hlen+slen]=1;
-        for var i=0;i<mlen;i++ {f[hlen+slen+1+i]=m[i]}
-
-        for var i=0;i<seedlen;i++ {SEED[i]=rng.getByte()}
-        RSA.MGF1(SEED,olen-seedlen,&DBMASK)
-
-        for var i=0;i<olen-seedlen;i++ {DBMASK[i]^=f[i]}
-        RSA.MGF1(DBMASK,seedlen,&f)
-
-        for var i=0;i<seedlen;i++ {f[i]^=SEED[i]}
-
-        for var i=0;i<olen-seedlen;i++ {f[i+seedlen]=DBMASK[i]}
-
-    /* pad to length RFS */
-        let d:Int=1;
-        for var i=RFS-1;i>=d;i--
-            {f[i]=f[i-d]}
-        for var i=d-1;i>=0;i--
-            {f[i]=0}
-
-        return f;
-    }
-
-    /* OAEP Message Decoding for Decryption */
-    static public func OAEP_DECODE(p: [UInt8]?,inout _ f:[UInt8]) -> [UInt8]
-    {
-        let olen=RFS-1
-        var k:Int
-        let H=HASH()
-        var hlen=HASH.len
-        var SEED=[UInt8](count:hlen,repeatedValue:0)
-        var seedlen=hlen
-        var CHASH=[UInt8](count:hlen,repeatedValue:0)
-        seedlen=32; hlen=32
-        if olen<seedlen+hlen+1 {return [UInt8()]}
-        var DBMASK=[UInt8](count:olen-seedlen,repeatedValue:0)
-        for var i=0;i<olen-seedlen;i++ {DBMASK[i]=0}
-
-        if (f.count<RSA.RFS)
-        {
-            let d=RSA.RFS-f.count;
-            for var i=RSA.RFS-1;i>=d;i--
-                {f[i]=f[i-d]}
-            for var i=d-1;i>=0;i--
-                {f[i]=0}
-
-        }
-
-        if (p != nil) {H.process_array(p!)}
-        var h=H.hash();
-        for var i=0;i<hlen;i++ {CHASH[i]=h[i]}
-
-        let x=f[0];
-
-        for var i=seedlen;i<olen;i++
-            {DBMASK[i-seedlen]=f[i+1]}
-
-        RSA.MGF1(DBMASK,seedlen,&SEED);
-        for var i=0;i<seedlen;i++ {SEED[i]^=f[i+1]}
-        RSA.MGF1(SEED,olen-seedlen,&f);
-        for var i=0;i<olen-seedlen;i++ {DBMASK[i]^=f[i]}
-
-        var comp=true;
-        for var i=0;i<hlen;i++
-        {
-            if (CHASH[i] != DBMASK[i]) {comp=false}
-        }
-
-        for var i=0;i<olen-seedlen-hlen;i++
-        {DBMASK[i]=DBMASK[i+hlen]}
-
-        for var i=0;i<hlen;i++
-            {SEED[i]=0;CHASH[i]=0;}
-
-        for k=0;;k++
-        {
-            if (k>=olen-seedlen-hlen) {return [UInt8]()}
-            if (DBMASK[k] != 0) {break}
-        }
-
-        let t=DBMASK[k];
-        if (!comp || x != 0 || t != 0x01)
-        {
-            for var i=0;i<olen-seedlen;i++ {DBMASK[i]=0}
-            return [UInt8]()
-        }
-
-        var r=[UInt8](count:olen-seedlen-hlen-k-1,repeatedValue:0)
-
-        for var i=0;i<olen-seedlen-hlen-k-1;i++
-            {r[i]=DBMASK[i+k+1]}
-
-        for var i=0;i<olen-seedlen;i++ {DBMASK[i]=0}
-
-        return r;
-    }
-    /* destroy the Private Key structure */
-    static public func PRIVATE_KEY_KILL(PRIV: rsa_private_key)
-    {
-        PRIV.p.zero();
-        PRIV.q.zero();
-        PRIV.dp.zero();
-        PRIV.dq.zero();
-        PRIV.c.zero();
-    }
-    /* RSA encryption with the public key */
-    static public func ENCRYPT(PUB: rsa_public_key,_ F:[UInt8],inout _ 
G:[UInt8])
-    {
-        let n=PUB.n.getlen()
-        let f=FF(n)
-
-        FF.fromBytes(f,F)
-        f.power(PUB.e,PUB.n)
-        f.toBytes(&G)
-    }
-    /* RSA decryption with the private key */
-    static public func DECRYPT(PRIV: rsa_private_key,_ G:[UInt8],inout _ 
F:[UInt8])
-    {
-        let n=PRIV.p.getlen()
-        let g=FF(2*n)
-
-        FF.fromBytes(g,G)
-        let jp=g.dmod(PRIV.p)
-        var jq=g.dmod(PRIV.q)
-
-        jp.skpow(PRIV.dp,PRIV.p)
-        jq.skpow(PRIV.dq,PRIV.q)
-
-        g.zero()
-        g.dscopy(jp)
-        jp.mod(PRIV.q)
-        if (FF.comp(jp,jq)>0) {jq.add(PRIV.q)}
-        jq.sub(jp)
-        jq.norm()
-
-        var t=FF.mul(PRIV.c,jq)
-        jq=t.dmod(PRIV.q)
-
-        t=FF.mul(jq,PRIV.p)
-        g.add(t);
-        g.norm();
-
-        g.toBytes(&F);
-    }
-
-}
-

Reply via email to