2012-03-13 8 views
2
import std.stdio; 
import deimos.openssl.bn; 
import deimos.openssl.rsa; 

const KEY_SIZE = 1024; 

void main(string[] args) { 
    if (args.length < 1) { 
     writeln("too few arguments"); 
    } 

    RSA* rsa = RSA_new(); 
    rsa = RSA_generate_key(KEY_SIZE, RSA_F4, null, null); 
    if(rsa==null) { 
     writeln("failure"); 
    } 
    else { 
     writeln("success"); 

     // error generated by the line below 
     if(!BN_generate_prime(rsa.p, (KEY_SIZE/2), 1, null, null, null, null)) { 
      writeln("prime_failure"); 
     } 
     else { 
      writeln("prime success"); 
     } 

     RSA_free(rsa); 
    } 
} 

Dプログラミング:opensslのRSA前方参照コンパイルエラーこれは、次のようなエラーにつながる

rsa.d(21): Error: struct rsa_st is forward referenced 

エラーがいつでも発生するが、私は、RSA構造体の要素にアクセスしよう。何か案は?

+0

誰もが任意のアイデアがありますか? – John

+0

あなたのプログラムをコンパイルするためにどのようなコマンドを使用していますか? – Bernard

答えて

3

私は頻繁にgithubの上のOpenSSLダイモスを更新し、彼からの応答を取得することができた人の一人と接触して取得することができました。

基本的にはOpenSSL CのAPIは、正確な定義が必要とされていないと、これらはDモジュールの一部の周り立ち往生しているいくつかの場所での構造体を前方に宣言します。

彼はリポジトリへのプルを要求し、彼が行った変更はあなたの現在の問題を解決します。ここにリンクは次のとおりです。

Deimos: openssl update

1

OpenSSLバインディングが実行されているかテストされているかどうかはわかりません。彼らは完全にここでdmd 2.057に壊れています。最初の問題はdmdバグです。 import deimos.openssl.rsaの前に他のopensslimportを移動する必要があります変更何かにエラー。影響を受けるモジュールでpkcs7をインポートすることで解決できる... エラーが発生しました。

私はopenssl deimosプロジェクトで問題を開きます。

関連する問題