📄 viewkey.cpp
字号:
// $Archive:: /STP/viewkey/viewkey.cpp $// $Date: 1999/10/08 07:00:51 $// $Revision: 1.9 $// Description: Viewkey main// copyright SafeTP Development Group, Inc., 2000 Terms of use are as specified in license.txt #include <stdio.h>#include <stdlib.h>#include <string.h>#include "keyutils.h"#include "sdsa.h"#include "base64.h"#include "str.h"#include "datablok.h"#include "security.h"#include "sftpver.h" // SFTP_versionvoid Usage(char* argvzero) { fprintf(stderr, "viewkey version %s\n", SFTP_version); fprintf(stderr, "Usage:\n"); fprintf(stderr, " %s <keyname>\n\n", argvzero); fprintf(stderr, "Example:\n"); fprintf(stderr, " %s DSA/public.key\n", argvzero); exit(1); }// make argument relative to cwdstring userConfigDir(){ return string(".");}int main(int argc, char** argv) { if (argc != 2) Usage(argv[0]); string pathname(argv[1]); DataBlock key(4096); bool isDSAkey = !!strstr(pathname, "DSA"); bool ispublickey = !!strstr(pathname, "public"); if (!LoadKey(pathname, key, isDSAkey)) { fprintf(stderr, "Key %s not found.\n", pathname.pchar()); return 1; } //unsigned long checksum = GetKeyChecksum(key.getData(), key.getDataLen()); string branding; string shaString = GetKeyShaString(key); if (isDSAkey && ispublickey) { try { DSABrandedPublicKey branded(key); branding = branded.getName(); } catch (xSecurity&) { branding = "WARNING: This key is corrupted or has been tampered with."; } } if (key.getAllocated() < key.getDataLen() * 2) key.setAllocated(key.getDataLen() * 2); key.setDataLen(base64enc(key.getData(),key.getData(),key.getDataLen())); key.setDataLen(ReformatKey((char*)key.getData())); char line[255]; for (int i=0; i < KEY_LINE_LENGTH; i++) line[i] = '-'; line[KEY_LINE_LENGTH] = '\0'; printf("Key: %s\n", pathname.pchar()); printf("%s\n",line); printf("%s",key.getData()); printf("%s\n",line); if (isDSAkey && ispublickey) { printf("Branding: %s\n",branding.pchar()); printf("Sha: %s\n", shaString.pcharc()); printf("%s\n",line); } // printf("Checksum: 0x%08lX\n",checksum); printf("%s\n",line); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -