Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
bn.c
Package: certlib.tar.gz [view]
Upload User: zbbssh
Upload Date: 2007-01-08
Package Size: 196k
Code Size: 3k
Category:
CA program
Development Platform:
C/C++
- /*
- * bn.c - the high-level bignum interface
- *
- * Copyright (c) 1995 Colin Plumb. All rights reserved.
- * For licensing and other legal details, see the file legal.c.
- */
- #include "bn.h"
- /* Functions */
- void
- bnBegin(struct BigNum *bn)
- {
- bn->ptr = 0;
- bn->size = 0;
- bn->allocated = 0;
- }
- void
- bnSwap(struct BigNum *a, struct BigNum *b)
- {
- void *p;
- unsigned t;
- p = a->ptr;
- a->ptr = b->ptr;
- b->ptr = p;
- t = a->size;
- a->size = b->size;
- b->size = t;
- t = a->allocated;
- a->allocated = b->allocated;
- b->allocated = t;
- }
- void (*bnEnd)(struct BigNum *bn);
- int (*bnPrealloc)(struct BigNum *bn, unsigned bits);
- int (*bnCopy)(struct BigNum *dest, struct BigNum const *src);
- void (*bnNorm)(struct BigNum *bn);
- void (*bnExtractBigBytes)(struct BigNum const *bn, unsigned char *dest,
- unsigned lsbyte, unsigned len);
- int (*bnInsertBigBytes)(struct BigNum *bn, unsigned char const *src,
- unsigned lsbyte, unsigned len);
- void (*bnExtractLittleBytes)(struct BigNum const *bn, unsigned char *dest,
- unsigned lsbyte, unsigned len);
- int (*bnInsertLittleBytes)(struct BigNum *bn, unsigned char const *src,
- unsigned lsbyte, unsigned len);
- unsigned (*bnLSWord)(struct BigNum const *src);
- unsigned (*bnBits)(struct BigNum const *src);
- int (*bnAdd)(struct BigNum *dest, struct BigNum const *src);
- int (*bnSub)(struct BigNum *dest, struct BigNum const *src);
- int (*bnSetQ)(struct BigNum *dest, unsigned src);
- int (*bnAddQ)(struct BigNum *dest, unsigned src);
- int (*bnSubQ)(struct BigNum *dest, unsigned src);
- int (*bnCmp)(struct BigNum const *a, struct BigNum const *b);
- int (*bnSquare)(struct BigNum *dest, struct BigNum const *src);
- int (*bnMul)(struct BigNum *dest, struct BigNum const *a,
- struct BigNum const *b);
- int (*bnMulQ)(struct BigNum *dest, struct BigNum const *a, unsigned b);
- int (*bnDivMod)(struct BigNum *q, struct BigNum *r, struct BigNum const *n,
- struct BigNum const *d);
- int (*bnMod)(struct BigNum *dest, struct BigNum const *src,
- struct BigNum const *d);
- unsigned (*bnModQ)(struct BigNum const *src, unsigned d);
- int (*bnExpMod)(struct BigNum *result, struct BigNum const *n,
- struct BigNum const *exp, struct BigNum const *mod);
- int (*bnDoubleExpMod)(struct BigNum *dest,
- struct BigNum const *n1, struct BigNum const *e1,
- struct BigNum const *n2, struct BigNum const *e2,
- struct BigNum const *mod);
- int (*bnTwoExpMod)(struct BigNum *n, struct BigNum const *exp,
- struct BigNum const *mod);
- int (*bnGcd)(struct BigNum *dest, struct BigNum const *a,
- struct BigNum const *b);
- int (*bnInv)(struct BigNum *dest, struct BigNum const *src,
- struct BigNum const *mod);
- int (*bnLShift)(struct BigNum *dest, unsigned amt);
- void (*bnRShift)(struct BigNum *dest, unsigned amt);
- unsigned (*bnMakeOdd)(struct BigNum *n);