⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbn.h

📁 RSA C++源代码DEMO,附加DESMD5等众多算法
💻 H
字号:
/***************************************************************************                                                                      ****  kbn.h (header file for kbn.cxx)                                     ****                                                                      ****  C++ CLASS FOR BIG INTEGER ARITHMETIC                                ****                                                                      ****  Copyright (c)1996 Markku-Juhani O. Saarinen <mjos@math.jyu.fi>      ****                                                                      ***************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream.h>
#include "cryputil.h"
#ifndef _OBJECT_KBN_
#define _OBJECT_KBN_
typedef unsigned short kbn_s;typedef unsigned long kbn_l;#define KBN_BASE_BITS	12#define KBN_BASE	    (1<<KBN_BASE_BITS)#define KBN_BASE_MASK	(KBN_BASE-1)#define KBN_VECTORSIZE	256// Datastring Objectclass kbn{    kbn_s vector[KBN_VECTORSIZE];public:    kbn();    ~kbn();    // function
	void loadasc( char *);   // ascii format
	char *saveasc();

    void load(unsigned char *, size_t); // hex format    size_t save(unsigned char *);
    int log2();
    kbn& sqr();
	int  testbit(int);    void setbit(int, int);           // equal operation        kbn& operator=  (kbn&);    kbn& operator+= (kbn&);    kbn& operator-= (kbn&);    kbn& operator*= (kbn&);    kbn& operator/= (kbn&);    kbn& operator%= (kbn&);    kbn& operator<<= (long);    kbn& operator>>= (long);    // convert operation: long int    kbn& operator= (long);    // calcu operation            kbn& operator+ (kbn&);    kbn& operator- (kbn&);    kbn& operator* (kbn&);    kbn& operator/ (kbn&);    kbn& operator% (kbn&);       kbn& operator<< (long);    kbn& operator>> (long);       // 1 parameter operation        kbn& operator++ ();    kbn& operator-- ();    kbn& operator~ ();        // compare operation        int operator== (kbn &);    int operator!= (kbn &);    int operator<= (kbn &);    int operator>= (kbn &);       int operator< (kbn &);    int operator> (kbn &);private:        void copy(kbn_s *, kbn_s *);    char *sprint (kbn_s *);    int setlong (unsigned long, kbn_s *);    int cmp(kbn_s *, kbn_s *);    void add(kbn_s *, kbn_s *, kbn_s *);    void sub (kbn_s *, kbn_s *, kbn_s *);    void mul (kbn_s *, kbn_s *, kbn_s *);    void rol(kbn_s *, int);    void ror(kbn_s *, int);    void div(kbn_s *, kbn_s *, kbn_s *);    void mod(kbn_s *, kbn_s *, kbn_s *);    int cntbits(short unsigned int *);    void addlong(short unsigned int *, long int);    void hexconv(char *, kbn_s *);};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -