在研究如何最好地利用OpenSSH时,我研究了SHA哈希并发现a post discussing the SHA2 functions in OpenSSL.可接受的答案


  SHA-224和SHA-256是相同的功能,但内部参数除外


我确定这是真的,但我想看看自己。就是这样,我知道它的外观。具体来说,我想看看执行SHA-224和SHA-256哈希处理的函数。

顺便说一句,这个问题对我很重要,因为我已经对编程(C和perl)课程做了一些介绍,而这些课程总是让我感到“好吧,那又如何?这怎么做有用的事情”。也许通过四处寻找,我将看到有用的代码是什么样子,了解一些有关开源软件的组织方式,并迈出一小步向自己贡献一些有用的东西。

因此,我下载了the OpenSSL source code (openssl-1.0.2e.tar.gz)并解压缩,然后想到“哇,我从哪里开始?”

所以,嗯,我从哪里开始?有很多文件和目录。是否有放置物品的约定?我是否应该安装一个开发环境,这将有助于看到更大的前景?任何帮助我朝正确方向开始的帮助将不胜感激。

最佳答案

Google是一个好的开始。有用的关键字:

openssl sha256


第二个结果将您带到头文件openssl/sha.h,您将在其中找到在代码中如何调用函数:

 int SHA224_Init(SHA256_CTX *c);
 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
 int SHA224_Final(unsigned char *md, SHA256_CTX *c);
 unsigned char *SHA224(const unsigned char *d, size_t n,
      unsigned char *md);

 int SHA256_Init(SHA256_CTX *c);
 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
 int SHA256_Final(unsigned char *md, SHA256_CTX *c);
 unsigned char *SHA256(const unsigned char *d, size_t n,
      unsigned char *md);


然后再克隆openssl git和grep就是一件容易的事,例如github就足够了。现在,使用关键字SHA256_Init。 hooray,实现是here

openssl/crypto/sha/sha256.c

关于ssl - 如何在源代码中查找功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35045982/

10-13 08:57