@blog.justoneplanet.info

日々勉強

iOSでOpenSSLを使って大きな数値計算をする

桁あふれしそうな数の計算をする。

■OpenSSLをiOS用にビルド

git clone https://github.com/x2on/OpenSSL-for-iPhone.git
cd OpenSSL-for-iPhone/
./build-libssl.sh

ビルドされたライブラリとヘッダーファイルをプロジェクトに追加する。

mkdir ../MyProject/Library/OpenSSL
cp -r include/ ../MyProject/Library/OpenSSL/include
cp -r lib/ ../MyProject/Library/OpenSSL/lib

Build Settings

Header Search Path

以下を追加する。

$(SRCROOT)/MyProject/Library/OpenSSL/include
Library Search Path

以下を追加する。

"$(SRCROOT)/MyProject/Library/OpenSSL/lib"

Build Phases

Link Binary With Libraries

libcrypto.aとlibssl.aを追加する。

■実装

#import <openssl/bn.h>

unsigned int rand = arc4random() % 100000000;
BIGNUM *random = BN_new();BN_set_word(random, rand);
BIGNUM *base = BN_new();BN_set_word(base, BASE);
BIGNUM *prime = BN_new();BN_set_word(prime, PRIME);
BIGNUM *remainder = BN_new();
BN_CTX *ctx;
ctx = BN_CTX_new();
BN_mod_exp(remainder, base, random, prime, ctx);
BN_CTX_free(ctx);

iOSでPythonが動けばいいのに。

参考

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment