【问题标题】:how find function in source如何在源代码中找到函数
【发布时间】:2016-01-27 19:10:26
【问题描述】:

在研究如何最好地利用 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),解压后想“哇,我从哪里开始?”

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

【问题讨论】:

    标签: ssl ssh openssl open-source


    【解决方案1】:

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

    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 in

    openssl/crypto/sha/sha256.c
    

    【讨论】:

    • 感谢分享过程。我将复制它,听起来我可以通过查看 github 是什么以及它是如何工作来学习一些东西的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2020-01-31
    • 2021-09-28
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多