如何在源中找到函数

时间:2016-01-27 19:10:27

标签: ssl ssh openssl open-source

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

  

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

我确信这是真的,但是,我想看看自己。就这样我才知道它的外观。具体来说,我想看看执行SHA-224和SHA-256散列的函数。

顺便说一下,这个问题对我来说很重要,因为我已经对编程(C和perl)课程进行了一些介绍,这些总是让我感觉像是#34;好吧,那又怎么样?这是如何做有用的事情"。也许通过稍微探讨一下,我会看到有用的代码是什么样的,了解一下开源软件的组织方式,并向我自己做一些有用的事情迈出一小步。

所以我下载了the OpenSSL source code (openssl-1.0.2e.tar.gz),将其解压缩并思考"哇,我从哪里开始?"

那么,嗯,我从哪里开始?有很多文件和很多目录。对于放置事物的地方是否有约定?是否有我应该安装的开发环境有助于了解更大的图景?任何帮助我开始正确方向的帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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。而且万岁,实施是here

openssl/crypto/sha/sha256.c