bnprint.c
来自「包含哈希,对称以及非对称的经典算法 包含经典事例」· C语言 代码 · 共 63 行
C
63 行
/* * bnprint.c - Print a bignum, for debugging purposes. * * Copyright (c) 1995 Colin Plumb. All rights reserved. * For licensing and other legal details, see the file legal.c. */#if HAVE_CONFIG_H#include "config.h"#endif#include <stdio.h>#if !NO_STRING_H#include <string.h>#elif HAVE_STRINGS_H#include <strings.h>#endif#include "bn.h"#include "bnprint.h"#include "kludge.h"intbnPrint(FILE *f, char const *prefix, struct BigNum const *bn, char const *suffix){ unsigned char temp[32]; /* How much to print on one line */ unsigned len; size_t i; if (prefix && fputs(prefix, f) < 0) return EOF; len = (bnBits(bn) + 7)/ 8; if (!len) { if (putc('0', f) < 0) return EOF; } else { while (len > sizeof(temp)) { len -= sizeof(temp); bnExtractBigBytes(bn, temp, len, sizeof(temp)); for (i = 0; i < sizeof(temp); i++) if (fprintf(f, "%02X", temp[i]) < 0) return EOF; if (putc('\\', f) < 0 || putc('\n', f) < 0) return EOF; if (prefix) { i = strlen(prefix); while (i--) if (putc(' ', f) < 0) return EOF; } } bnExtractBigBytes(bn, temp, 0, len); for (i = 0; i < len; i++) if (fprintf(f, "%02X", temp[i]) < 0) return EOF; } return suffix ? fputs(suffix, f) : 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?