2011-05-20 85 views
2

我有一个在Android应用程序中使用OpenSSL的项目。我对这个lib有点困惑。 我读过Android上已经存在的OpenSSL ...这是真的吗?如果是这样,我该如何使用它...如何在Android上使用OpenSSL?

如果不这样做,这是否意味着我必须从某处建立或获取lib ...如果我需要这样做,是否有人知道我可以在哪里找到它,以及我将如何构建以用于Android?

有人可以帮助我了解我需要开始的事情...请不要害怕提供大量的细节。 :)

在此先感谢!

UPDATE:我想要做的是:

  • 创建密钥对
  • 获取私钥
  • 获取公钥
  • 加密文本
  • 解密文本(从另一个位置)

我在Eclipse中使用Mac OSX。

+0

如果您可以更多地告诉我们您正在努力完成的任务,那么您将更有可能获得更详细的示例。 – FoamyGuy 2011-05-20 13:36:27

+0

我在Eclipse中使用Mac OSX。 – Fabien 2011-05-20 13:43:11

+0

更新了问题^^ – Fabien 2011-05-20 13:45:52

回答

1

我看到Android上已经存在OpenSSL ... 这是真的吗?如果是这样,我该如何使用它...

是的,但它是一个低级版本。我相信它的OpenSSL 0.9.8,但我可能是错的。如果可能的话,你应该尽量避免它。例如,你没有得到能够使用TLS 1.2的库,因为它是在OpenSSL 1.0.1中引入的。

OpenSSL被加载到每个Android进程中。它是Zygote分支的副产品。因此,无论您是否需要,您都始终拥有低级别的OpenSSL。

您可以通过JNI访问OpenSSL。有很多Stack Overflow的问题和答案。

要使用新的OpenSSL,你必须写一个包装共享对象,并链接到静态库 OpenSSL版本。然后通过包装器通过JNI到达更新版本的OpenSSL。

我想要做的是:

  • 创建密钥对
  • 获取私钥
  • 获取公钥
  • 加密文本
  • 解密文本

准备就绪后,如果遇到麻烦,您应该提出单独的问题。


有关交叉编译指令,请参阅OpenSSL wiki上的Android