亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? miracl.h

?? RSA算法實現, 里面有詳細的代碼... ... ... ... ... !
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef MIRACL_H
#define MIRACL_H

/*
 *   main MIRACL header - miracl.h.
 *
 *   Copyright (c) 1988-2001 Shamus Software Ltd.
 */

#include "mirdef.h"

#ifdef __ia64__
#if MIRACL==64
#define MR_ITANIUM
#include <ia64intrin.h>
#endif
#endif

#ifdef MR_FP
#include <math.h>
#endif

#ifndef MR_NO_FILE_IO
#include <stdio.h>
#endif
               /* error returns */

#define MR_ERR_BASE_TOO_BIG    1
#define MR_ERR_DIV_BY_ZERO     2
#define MR_ERR_OVERFLOW        3
#define MR_ERR_NEG_RESULT      4
#define MR_ERR_BAD_FORMAT      5
#define MR_ERR_BAD_BASE        6
#define MR_ERR_BAD_PARAMETERS  7
#define MR_ERR_OUT_OF_MEMORY   8
#define MR_ERR_NEG_ROOT        9
#define MR_ERR_NEG_POWER       10
#define MR_ERR_BAD_ROOT        11
#define MR_ERR_INT_OP          12
#define MR_ERR_FLASH_OVERFLOW  13
#define MR_ERR_TOO_BIG         14
#define MR_ERR_NEG_LOG         15
#define MR_ERR_DOUBLE_FAIL     16
#define MR_ERR_IO_OVERFLOW     17
#define MR_ERR_NO_MIRSYS       18
#define MR_ERR_BAD_MODULUS     19
#define MR_ERR_NO_MODULUS      20
#define MR_ERR_EXP_TOO_BIG     21
#define MR_ERR_NOT_SUPPORTED   22
#define MR_ERR_NOT_DOUBLE_LEN  23
#define MR_ERR_NOT_IRREDUC     24
#define MR_ERR_NO_ROUNDING     25

               /* some useful definitions */



#define forever for(;;)   

#ifndef TRUE
  #define TRUE 1
#endif
#ifndef FALSE
  #define FALSE 0
#endif

#define OFF 0
#define ON 1
#define PLUS 1
#define MINUS (-1)

#define MR_MAXDEPTH 24
                              /* max routine stack depth */
/* big and flash variables consist of an encoded length, *
 * and an array of mr_smalls containing the digits       */

typedef int BOOL;

#define MR_BYTE unsigned char

#ifdef MR_BITSINCHAR
 #if MR_BITSINCHAR == 8
  #define MR_TOBYTE(x) ((MR_BYTE)(x))
 #else
  #define MR_TOBYTE(x) ((MR_BYTE)((x)&0xFF))
 #endif
#else
 #define MR_TOBYTE(x) ((MR_BYTE)(x))
#endif

#ifdef MR_FP

  typedef mr_utype mr_small;
  #ifdef mr_dltype
  typedef mr_dltype mr_large;
  #endif

  #define MR_DIV(a,b)    (modf((a)/(b),&dres),dres)

  #ifdef MR_FP_ROUNDING

/* slightly dicey - the optimizer might remove the MAGIC ! */

    #define MR_LROUND(a)   ( ( (a) + MR_MAGIC ) - MR_MAGIC )
  #else
    #define MR_LROUND(a)   (modfl((a),&ldres),ldres)
  #endif

  #define MR_REMAIN(a,b) ((a)-(b)*MR_DIV((a),(b)))

#else

  typedef unsigned mr_utype mr_small;
  #ifdef mr_dltype
    typedef unsigned mr_dltype mr_large;
  #endif

  #define MR_DIV(a,b)    ((a)/(b))
  #define MR_REMAIN(a,b) ((a)%(b))
  #define MR_LROUND(a)   ((a))
#endif

struct bigtype
{
    mr_unsign32 len;
    mr_small *w;
};                

typedef struct bigtype *big;
typedef big zzn;

/* Macro to create big x on the stack - x_t and x_g must be distinct variables 
   By convention use like this. See brute.c and identity.c for examples

   BIG(x,x_t,x_g,10)
   BIG(y,y_t,y_g,10)

*/

#define BIG(x,xt,xg,s) mr_small xg[s]; struct bigtype xt={s,xg}; big x=&xt;

typedef big flash;

#define MR_MSBIT ((mr_unsign32)1<<31)
#define MR_OBITS (MR_MSBIT-1)

#if MIRACL >= MR_IBITS
#define MR_TOOBIG (1<<(MR_IBITS-2))
#else
#define MR_TOOBIG (1<<(MIRACL-1))
#endif

#ifdef  MR_FLASH
#define MR_EBITS (8*sizeof(double) - MR_FLASH)
                                  /* no of Bits per double exponent */
#define MR_BTS 16
#define MR_MSK 0xFFFF

#endif

#define MR_HASH_BYTES     20

/* Marsaglia & Zaman Random number generator */
/*         constants      alternatives       */
#define NK   37           /* 21 */
#define NJ   24           /*  6 */
#define NV   14           /*  8 */


#ifdef MR_LITTLE_ENDIAN
#define MR_TOP(x) (*(((mr_small *)&(x))+1))
#define MR_BOT(x) (*(((mr_small *)&(x))))
#endif
#ifdef MR_BIG_ENDIAN
#define MR_TOP(x) (*(((mr_small *)&(x))))
#define MR_BOT(x) (*(((mr_small *)&(x))+1))
#endif

/* chinese remainder theorem structures */

typedef struct {
big *C;
big *V;
big *M;
int NP;
} big_chinese;

typedef struct {
mr_utype *C;
mr_utype *V;
mr_utype *M;
int NP;
} small_chinese;

/* Cryptographically strong pseudo-random number generator */

typedef struct {
mr_unsign32 ira[NK];  /* random number...   */
int         rndptr;   /* ...array & pointer */
mr_unsign32 borrow;
int pool_ptr;
char pool[MR_HASH_BYTES];    /* random pool */
} csprng;

/* secure hash Algorithm structure */

typedef struct {
mr_unsign32 length[2];
mr_unsign32 h[8];
mr_unsign32 w[80];
} sha256;

typedef sha256 sha;

#ifdef mr_unsign64

typedef struct {
mr_unsign64 length[2];
mr_unsign64 h[8];
mr_unsign64 w[80];
} sha512;

typedef sha512 sha384;

#endif

/* advanced encryption algorithm structure */

#define MR_ECB   0
#define MR_CBC   1
#define MR_CFB1  2
#define MR_CFB2  3
#define MR_CFB4  5
#define MR_PCFB1 10
#define MR_PCFB2 11
#define MR_PCFB4 13
#define MR_OFB1  14
#define MR_OFB2  15
#define MR_OFB4  17
#define MR_OFB8  21
#define MR_OFB16 29

typedef struct {
int Nk,Nr;
int mode;
mr_unsign32 fkey[60];
mr_unsign32 rkey[60];
char f[16];
} aes;


               /* Elliptic curve point status */

#define MR_EPOINT_GENERAL    0
#define MR_EPOINT_NORMALIZED 1
#define MR_EPOINT_INFINITY   2

#define MR_PROJECTIVE 0
#define MR_AFFINE     1


/* Elliptic Curve epoint structure. Uses projective (X,Y,Z) co-ordinates */

typedef struct {
big X;
big Y;
big Z;
int marker;
} epoint;


/* Structure for Brickell method for finite *
   field exponentiation with precomputation */

typedef struct {
    big *table;
    big n;
    int base;
    int store;
} brick;

/* Structure for Brickell method for elliptic *
   curve  exponentiation with precomputation  */

typedef struct {
    epoint **table;
    big a,b,n;
    int base;
    int store;
} ebrick;

typedef struct {
    epoint **table;
    big a6,a2;
    int m,a,b,c;
    int base;
    int store;
} ebrick2;

/* main MIRACL instance structure */

typedef struct {
mr_small base;       /* number base     */
mr_small apbase;     /* apparent base   */
int   pack;          /* packing density */
int   lg2b;          /* bits in base    */
mr_small base2;      /* 2^mr_lg2b          */
BOOL (*user)(void);  /* pointer to user supplied function */

int   nib;           /* length of bigs  */
int   depth;                 /* error tracing ..*/
int   trace[MR_MAXDEPTH];    /* .. mechanism    */
BOOL  check;         /* overflow check  */
BOOL  fout;          /* Output to file   */
BOOL  fin;           /* Input from file  */
BOOL  active;

#ifndef MR_NO_FILE_IO

FILE  *infile;       /* Input file       */
FILE  *otfile;       /* Output file      */

#endif

mr_unsign32 ira[NK];  /* random number...   */
int         rndptr;   /* ...array & pointer */
mr_unsign32 borrow;

            /* Montgomery constants */
mr_small ndash;
big modulus;
BOOL ACTIVE;
BOOL MONTY;
                       /* Elliptic Curve details  */
BOOL SS;               /* True for Super-Singular */
big A,B,C;
int coord,Asize,Bsize;

int M,AA,BB,CC;     /* for GF(2^m) curves */

int logN;           /* constants for fast fourier fft multiplication */
int nprimes,degree;
mr_utype *prime,*cr;
mr_utype *inverse,**roots;
small_chinese chin;
mr_utype const1,const2,const3;
mr_small msw,lsw;
mr_utype **s1,**s2;   /* pre-computed tables for polynomial reduction */
mr_utype **t;         /* workspace */
mr_utype *wa;
mr_utype *wb;
mr_utype *wc;
BOOL same;
BOOL first_one;
BOOL debug;

big w0;            /* workspace bigs  */
big w1,w2,w3,w4;
big w5,w6,w7;
big w8,w9,w10,w11;
big w12,w13,w14,w15;
big w16,w17,w18;

/* User modifiables */

char *IOBUFF; /* i/o buffer    */
int  IOBSIZ;  /* size of i/o buffer */
BOOL ERCON;        /* error control   */
int  ERNUM;        /* last error code */
int  NTRY;         /* no. of tries for probablistic primality testing   */
int  IOBASE;       /* base for input and output */
BOOL EXACT;        /* exact flag      */
BOOL RPOINT;       /* =ON for radix point, =OFF for fractions in output */
BOOL TRACER;       /* turns trace tracker on/off */
int  INPLEN;       /* input length               */
int *PRIMES;       /* small primes array         */

#ifdef MR_FLASH
int   workprec;
int   stprec;        /* start precision */

int RS,RD;
double D;

double db,n,p;
int a,b,c,d,r,q,oldn,ndig;
mr_small u,v,ku,kv;

BOOL last,carryon;
flash pi;


#endif

#ifdef MR_KCM
big big_ndash;
big ws;
#endif

#ifdef MR_FP_ROUNDING
mr_large inverse_base;
#endif
int size;
char *workspace;

} miracl;


#ifndef MR_GENERIC_MT

#ifdef MR_WINDOWS_MT
#define MR_OS_THREADS
#endif

#ifdef MR_UNIX_MT
#define MR_OS_THREADS
#endif

#ifndef MR_OS_THREADS

extern miracl *mr_mip;  /* pointer to MIRACL's only global variable */

#endif

#endif


#ifdef MR_GENERIC_MT

#define _MIPT_  miracl *,
#define _MIPTO_ miracl *
#define _MIPD_  miracl *mr_mip,
#define _MIPDO_ miracl *mr_mip
#define _MIPP_  mr_mip,
#define _MIPPO_ mr_mip

#else

#define _MIPT_    
#define _MIPTO_  void  
#define _MIPD_    
#define _MIPDO_  void  
#define _MIPP_    
#define _MIPPO_    

#endif

/* Preamble and exit code for MIRACL routines. *
 * Not used if MR_STRIPPED_DOWN is defined     */ 

#ifdef MR_STRIPPED_DOWN
#define MR_OUT
#define MR_IN(N)
#else
#define MR_OUT  mr_mip->depth--;        
#define MR_IN(N) mr_mip->depth++; if (mr_mip->depth<MR_MAXDEPTH) {mr_mip->trace[mr_mip->depth]=(N); if (mr_mip->TRACER) mr_track(_MIPPO_); }
#endif

/* Function definitions  */

/* Group 0 - Internal routines */

extern void  mr_berror(_MIPT_ int);
extern mr_small mr_shiftbits(mr_small,int);
extern mr_small mr_setbase(_MIPT_ mr_small);
extern void  mr_track(_MIPTO_ );
extern void  mr_lzero(big);
extern BOOL  mr_notint(flash);
extern int   mr_lent(flash);
extern void  mr_padd(_MIPT_ big,big,big);
extern void  mr_psub(_MIPT_ big,big,big);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看一区二区三区| 亚洲视频图片小说| 不卡一二三区首页| 久久精品国产一区二区三| 亚洲国产一区二区三区 | 欧美男同性恋视频网站| 国产mv日韩mv欧美| 豆国产96在线|亚洲| 欧美一区二区福利在线| 欧美日韩不卡一区二区| 久久久精品国产免费观看同学| 欧美mv日韩mv国产网站| 日韩无一区二区| 久久亚洲精品小早川怜子| 国产精品视频在线看| 中文字幕亚洲欧美在线不卡| 一级做a爱片久久| 亚洲午夜三级在线| 色婷婷综合五月| 欧美系列日韩一区| 精品欧美黑人一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 99综合影院在线| 99久久99久久免费精品蜜臀| 色一情一乱一乱一91av| 中文字幕一区二区三区在线不卡| 国产精品一区二区久久精品爱涩| 成人看片黄a免费看在线| 欧美在线三级电影| 精品粉嫩aⅴ一区二区三区四区| 国产欧美日韩三级| 亚洲一区二区三区在线播放| 老司机免费视频一区二区| 777精品伊人久久久久大香线蕉| 中文字幕乱码久久午夜不卡 | 成人免费视频视频在线观看免费| 日韩欧美在线一区二区三区| 久久国产精品区| 欧美精品一区二区精品网| 久久99精品久久久| 99v久久综合狠狠综合久久| 国产农村妇女精品| 成人avav在线| 亚洲免费在线电影| 国产一区二区日韩精品| 色婷婷综合久久久久中文 | 国产亚洲一区字幕| 一区2区3区在线看| 欧美在线不卡视频| 日韩不卡在线观看日韩不卡视频| av在线这里只有精品| 亚洲视频你懂的| 欧美日韩一区在线| 亚洲欧美日韩国产综合在线| 欧美亚洲一区三区| 美女视频黄 久久| 欧美人与z0zoxxxx视频| 精品一区二区国语对白| 亚洲图片你懂的| 91精品国产综合久久福利软件| 国产成人精品在线看| 91精品国产高清一区二区三区蜜臀 | 一本色道久久综合亚洲aⅴ蜜桃| 麻豆一区二区三| 国产精品久久二区二区| 麻豆精品一二三| 国产精品久久久久久久第一福利| 欧美日韩不卡一区| 国产精品一级片在线观看| 亚洲男人的天堂一区二区| 精品国产乱码久久久久久久| av成人免费在线观看| 免费不卡在线视频| 亚洲日本丝袜连裤袜办公室| 日韩三区在线观看| 色婷婷一区二区| 国产在线乱码一区二区三区| 精品国产区一区| 色综合咪咪久久| 国产福利一区在线| 婷婷国产在线综合| 欧美高清视频不卡网| 亚洲成人久久影院| 91麻豆精品国产91久久久资源速度| 国产精品综合在线视频| 婷婷六月综合亚洲| 亚洲人成伊人成综合网小说| 精品国产制服丝袜高跟| 欧美综合一区二区| 成人黄色a**站在线观看| 另类的小说在线视频另类成人小视频在线| 中文字幕制服丝袜成人av| 337p日本欧洲亚洲大胆精品| 欧美日韩激情一区二区三区| 91香蕉国产在线观看软件| 亚洲综合丁香婷婷六月香| 亚洲一区二区欧美| 国产精品乱码人人做人人爱| 精品国产免费一区二区三区四区 | 色综合天天做天天爱| 夜夜亚洲天天久久| 1024成人网| 国产香蕉久久精品综合网| 精品国内二区三区| 日韩欧美一级在线播放| 丁香激情综合国产| 国产一区二三区好的| 国产综合色产在线精品| 老司机精品视频在线| 毛片基地黄久久久久久天堂| 日韩av不卡一区二区| 天天综合天天做天天综合| 亚洲一二三级电影| 亚洲精品视频一区| 日韩精品中文字幕在线不卡尤物 | 国产精品伦一区二区三级视频| 26uuu国产电影一区二区| 精品国免费一区二区三区| 日韩欧美国产高清| 久久亚洲一级片| 国产精品午夜电影| 国产精品毛片久久久久久久| 国产婷婷色一区二区三区四区| 国产欧美日韩麻豆91| 国产精品免费丝袜| 亚洲黄色小说网站| 婷婷中文字幕综合| 久久aⅴ国产欧美74aaa| 国产精品白丝av| 91麻豆国产福利精品| 欧美又粗又大又爽| 91精品国产综合久久福利| 久久亚洲捆绑美女| 亚洲人成伊人成综合网小说| 亚洲电影在线播放| 久久99深爱久久99精品| caoporm超碰国产精品| 欧美性受xxxx| 欧美videossexotv100| 日本一区二区三区高清不卡| 亚洲制服丝袜在线| 开心九九激情九九欧美日韩精美视频电影| 国产在线一区二区综合免费视频| 成人免费毛片app| 在线观看视频一区二区| 欧美v亚洲v综合ⅴ国产v| 亚洲日本在线视频观看| 日韩不卡一区二区| 播五月开心婷婷综合| 欧美日韩在线播放| 欧美韩国一区二区| 亚洲高清中文字幕| 精品久久久影院| 欧美色老头old∨ideo| 精品国产乱码久久久久久影片| 国产精品久线观看视频| 日韩电影一二三区| 99久久国产综合精品女不卡| 91麻豆精品国产91久久久久久| 国产精品夫妻自拍| 精品亚洲国产成人av制服丝袜| 色婷婷久久久亚洲一区二区三区| 精品剧情在线观看| 亚洲最大成人综合| 丰满白嫩尤物一区二区| 91精品国产综合久久香蕉的特点 | 91久久精品一区二区三区| 国产精品乡下勾搭老头1| 欧美日韩日日骚| 中文字幕一区二区三区不卡在线| 极品少妇一区二区| 欧美日韩视频在线第一区 | 欧美日本在线视频| 国产精品久久久久aaaa| 国产在线精品一区二区三区不卡| 欧美午夜电影一区| 中文字幕在线观看一区| 日韩一区二区三区视频| 亚洲欧美另类综合偷拍| 国模少妇一区二区三区| 69p69国产精品| 一区二区三区在线免费| 本田岬高潮一区二区三区| 亚洲精品一线二线三线| 麻豆精品一区二区| 欧美一区二区三区免费在线看| 亚洲综合999| av亚洲精华国产精华精| 国产精品全国免费观看高清| 国产99久久久精品| 日本一区二区免费在线观看视频 | 欧美日韩在线一区二区| 国产三级三级三级精品8ⅰ区| 久久国产综合精品| 精品剧情在线观看| 国产一区二区女| 国产日韩影视精品| 成人性生交大片| 国产精品久久久久国产精品日日| 成人在线视频一区|