1

我喜欢在 Mac 上的类 C(实际上是 Xojo)程序中使用scrypt密钥派生函数。

据我所知,OS X 上没有预装任何东西。

原始源代码在Tarsnap上,当它编译时(在./configureand之后make),它构建了一个可执行文件,而不是我可以链接到的库。

我想知道是否有一种简单的方法可以从中构建 dylib。我查看了makefile,但它让我不知所措,并且源代码中没有构建说明。

4

1 回答 1

1

我设法在 Xcode 的帮助下构建了一个 dylib。

有一些挑战(基于 scrypt v1.2.0):

  • sha256.c声明一个initstate. 不知何故,这与全局名称发生冲突,因此我将其重命名为该s_initstate文件中的 3 个位置。
  • 我将所有 .c 文件添加到项目中,但必须删除一些实际上不需要的文件,包括crypto_scrypt-ref.c,这会导致其他符号重复。
  • Xcode 7 设置的默认搜索路径确实引用usr/include了 OS X 特定 SDK 文件夹中的内容。但这不包括所需的openssl/aes.h文件,我只在/usr/include(即文件系统的根目录)中找到了该文件。我通过将目标选项“始终搜索用户路径”YES和“用户标题搜索路径”设置为来解决这个问题/usr/include

在此之后,我可以构建 dylib,然后链接到crypto_scrypt.hscryptenc.h中声明的函数。

(太糟糕了,该项目不在 CVS 上,否则我会提交包含更改的拉取请求。)

更新:项目在github

于 2016-08-31T11:23:38.347 回答