研究随笔---2022/3/11


前言

提示:仅作为个人学习记录

最近在做的一个关于加解密简单的研究。
用到的库是:LibTomcrypt


以下是正文↓

一、安装、配置测试环境

目前我手上是已经有一份能跑出结果的代码了,我现在需要做的是在我的虚拟机上搭建一个能调用tomcrypt库的环境。
一开始,我用apt search tomcrypt后发现apt install tomcrypt显示无法定位软件包tomcrypt,我还以为是我的源没更新的问题,还去更新了源并加了条中科大的镜像源。后来发现只是我没打对软件包的名字。下面贴出我在这个纠错过程中用到的命令。

cd /etc/apt  #定位到source.list的根目录
vim sources.list  
#用vim打开source.list发现只有条阿里的镜像,加入以下镜像源;
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

然后发现,仍旧不行,我注意到了apt search 命令实际上只是列出了相关的库,所以我按照sudo apt install libtomcrypt-dev (必须要要加sudo,否则显示无权限)最后成功安装需要用到的密码库
apt search显示的搜索结果

二、运行代码

然后事情就变得很简单了,在本地code文件目录下(自己创建的目录,里面放着项目源码)右键打开命令行输入以下命令进行编译、运行。

g++ tom_aes_ctr.cpp printBuffer.c -o tom_aes_ctr -ltomcrypt  
#编译,并加上链接库,这里参数应该写-ltomcrypt
./tom_aes_ctr   #运行编译文件

成功跑出结果!说明环境搭建成功了,可以继续进行进一步研究。
运行结果

总结

关于代码实现细节就不一一赘述了,我还得在研究一下。
感谢我的师兄提供给我的代码,接下来就需要写出关于AES-other mode的加解密代码。
关于我的code文件夹,里面放的是bash.h printBuffer.c printBuffer.h以及tom_aes_ctr.cpp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#ifndef TOMCRYPT_H_ #define TOMCRYPT_H_ #include <assert.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <ctype.h> #include <limits.h> /* use configuration data */ #include <tomcrypt_custom.h> #ifdef __cplusplus extern "C" { #endif /* version */ #define CRYPT 0x0116 #define SCRYPT "1.16" /* max size of either a cipher/hash block or symmetric key [largest of the two] */ #define MAXBLOCKSIZE 128 /* descriptor table size */ /* Dropbear change - this should be smaller, saves some size */ #define TAB_SIZE 4 /* error codes [will be expanded in future releases] */ enum { CRYPT_OK=0, /* Result OK */ CRYPT_ERROR, /* Generic Error */ CRYPT_NOP, /* Not a failure but no operation was performed */ CRYPT_INVALID_KEYSIZE, /* Invalid key size given */ CRYPT_INVALID_ROUNDS, /* Invalid number of rounds */ CRYPT_FAIL_TESTVECTOR, /* Algorithm failed test vectors */ CRYPT_BUFFER_OVERFLOW, /* Not enough space for output */ CRYPT_INVALID_PACKET, /* Invalid input packet given */ CRYPT_INVALID_PRNGSIZE, /* Invalid number of bits for a PRNG */ CRYPT_ERROR_READPRNG, /* Could not read enough from PRNG */ CRYPT_INVALID_CIPHER, /* Invalid cipher specified */ CRYPT_INVALID_HASH, /* Invalid hash specified */ CRYPT_INVALID_PRNG, /* Invalid PRNG specified */ CRYPT_MEM, /* Out of memory */ CRYPT_PK_TYPE_MISMATCH, /* Not equivalent types of PK keys */ CRYPT_PK_NOT_PRIVATE, /* Requires a private PK key */ CRYPT_INVALID_ARG, /* Generic invalid argument */ CRYPT_FILE_NOTFOUND, /* File Not Found */ CRYPT_PK_INVALID_TYPE, /* Invalid type of PK key */ CRYPT_PK_INVALID_SYSTEM,/* Invalid PK system specified */ CRYPT_PK_DUP, /* Duplicate key already in key ring */ CRYPT_PK_NOT_FOUND, /* Key not found in keyring */ CRYPT_PK_INVALID_SIZE, /* Invalid size input for PK parameters */ CRYPT_INVALID_PRIME_SIZE,/* Invalid size of prime requested */ CRYPT_PK_INVALID_PADDING /* Invalid padding on input */ }; #include <tomcrypt_cfg.h> #include <tomcrypt_macros.h> #include <tomcrypt_cipher.h> #include <tomcrypt_hash.h> #include <tomcrypt_mac.h> #include <tomcrypt_prng.h> #include <tomcrypt_pk.h> #include <tomcrypt_math.h> #include <tomcrypt_misc.h> #include <tomcrypt_argchk.h> #include <tomcrypt_pkcs.h> #ifdef __cplusplus } #endif #endif /* TOMCRYPT_H_ */ /* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt.h,v $ */ /* $Revision: 1.20 $ */ /* $Date: 2006/11/26 01:45:14 $ */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值