2017-07-21 7 views
0

最近、私たちの組織はWindows共有フォルダを置き換えるBoxを採用しました。私が参加している小さな開発グループは、少なくとも1つのBox共有からファイルをアップロードしてダウンロードする必要があるため、APIを使い始めるだけです。Box C#SDKプロジェクトでBox-created RSAキーを使用してエラーをキャストできません

私たちのグループは現在、Visual Studio 2013を使用してC#で開発し、.NET 4.0の優先ターゲットを使用しています。現在のバージョンのSDK(2.15.6)は当社のプラットフォームと互換性がありませんが、以前のバージョンを見ると、既存のプラットフォームでバージョン2.12.1を活用できるはずです。 SDKには、API呼び出しにアクセスするC#メソッドとサンプルコードを含むソリューションが含まれています。

現在、資格情報を消費してサーバーに認証するサンプルコードを取得しようとしています。

私はアプリケーションを作成し、組み込みのボックス設定オプションを使用して、パブリック/プライベートキーペアを生成してJSONファイルとして表示しました。

私がハングアップしているところは、Box.V2.Samples.JWTAuthプロジェクトで鍵ペアを使用しようとするときです。私は、JSONファイルから秘密鍵をコピーした\ n個の実際のキャリッジリターンとを交換し、そしてprivate_key.pemファイルにそれを貼り付け:

Private Key

私はApp.configファイルに他の値を配置して、コンソールを開始しました私ははBouncyCastle AsymmetricCipherKeyPairオブジェクトにはBouncyCastle RsaPrivateCrtKeyParamatersオブジェクトから取得できますか

Error message

Unable to castエラーが発生しアプリ?

編集

Iは、問題のコードブロックを追跡することができました。 SDK\Box.V2.JWTAuth\BoxJWTAuth.csから:私の読書から

 var pwf = new PEMPasswordFinder(this.boxConfig.JWTPrivateKeyPassword); 
     AsymmetricCipherKeyPair key; 
     using (var reader = new StringReader(this.boxConfig.JWTPrivateKey)) 
     { 
      key = (AsymmetricCipherKeyPair)new PemReader(reader, pwf).ReadObject(); 
     } 
     var rsa = DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)key.Private); 
     this.credentials = new SigningCredentials(new RsaSecurityKey(rsa), SecurityAlgorithms.RsaSha256Signature, SecurityAlgorithms.Sha256Digest); 

それは専用ボックスは(ない現在、少なくとも)を供給されているものではありません公開/非公開のペアからキーと何Iを抽出する必要が予想しているコードのように思えます既に供給がRsaPrivateCrtKeyParametersのように見えるので、このキャストは必要ではありません。

+0

はね、おそらく。コードを投稿することができます。 –

+0

私はあなたがそこで何をしたかを見ます。コードが配置され、追加されました。 –

答えて

0

それはあなたがこれを行うには、コードを記述しようとしている、またはツールを設定しようとしているかどうか、あなたの質問から明らかではないが、プログラム的に、それは次のようになります。あなたがで箱詰めしているよう

RSAPrivateCrtKeyParameters priv = ...; 
RSAKeyParameters pub = new RSAKeyParameters(false, priv.getModulus(), priv.getPublicExponent()); 
AsymmetricCipherKeyPair kp = new AsymmetricCipherKeyPair(pub, priv); 
+0

私は明確にしようとしました。今はSDK内で提供されているサンプルコードを使用しようとしています。 –

+0

それから、ReadObjectは既にRsaPrivateCrtKeyParametersを返しているようですが、その場合はAsymmetricCipherKeyPairを必要とせずにToRSAに渡すだけです。 –

関連する問題