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

📄 ecc_ansi_x963_export.c

📁 全功能的加密库
💻 C
字号:
/* LibTomCrypt, modular cryptographic library -- Tom St Denis * * LibTomCrypt is a library that provides various cryptographic * algorithms in a highly modular and flexible manner. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@gmail.com, http://libtom.org *//* Implements ECC over Z/pZ for curve y^2 = x^3 - 3x + b * * All curves taken from NIST recommendation paper of July 1999 * Available at http://csrc.nist.gov/cryptval/dss.htm */#include "tomcrypt.h"/**  @file ecc_ansi_x963_export.c  ECC Crypto, Tom St Denis*/  #ifdef LTC_MECC/** ECC X9.63 (Sec. 4.3.6) uncompressed export  @param key     Key to export  @param out     [out] destination of export  @param outlen  [in/out]  Length of destination and final output size  Return CRYPT_OK on success*/int ecc_ansi_x963_export(ecc_key *key, unsigned char *out, unsigned long *outlen){   unsigned char buf[ECC_BUF_SIZE];   unsigned long numlen;   LTC_ARGCHK(key    != NULL);   LTC_ARGCHK(out    != NULL);   LTC_ARGCHK(outlen != NULL);   if (ltc_ecc_is_valid_idx(key->idx) == 0) {      return CRYPT_INVALID_ARG;   }   numlen = key->dp->size;   if (*outlen < (1 + 2*numlen)) {      *outlen = 1 + 2*numlen;      return CRYPT_BUFFER_OVERFLOW;   }   /* store byte 0x04 */   out[0] = 0x04;   /* pad and store x */   zeromem(buf, sizeof(buf));   mp_to_unsigned_bin(key->pubkey.x, buf + (numlen - mp_unsigned_bin_size(key->pubkey.x)));   XMEMCPY(out+1, buf, numlen);   /* pad and store y */   zeromem(buf, sizeof(buf));   mp_to_unsigned_bin(key->pubkey.y, buf + (numlen - mp_unsigned_bin_size(key->pubkey.y)));   XMEMCPY(out+1+numlen, buf, numlen);   *outlen = 1 + 2*numlen;   return CRYPT_OK;}#endif/* $Source: /cvs/libtom/libtomcrypt/src/pk/ecc/ecc_ansi_x963_export.c,v $ *//* $Revision: 1.6 $ *//* $Date: 2007/05/12 14:32:35 $ */

⌨️ 快捷键说明

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