前提・実現したいこと
MacOSでクライアントアプリを開発をしています。
アプリで使用する認証を署名付きの JWT を実装するところで詰まっています。
すでに実装済みのWindowsクライアントアプリで使用している認証に合わせるため、こちらの C#
のサンプルように、 任意の文字列を鍵として使用したいです。
.NETでJWTのエンコードとデコード
IBM-Swift/Swift-JWTで検証したところ、下記の箇所で署名をつけるとき、任意の文字列から共鍵を設定すると ASN.1
の形式エラーとなりました。
let signedJWT = try jwt.sign(using: jwtSigner)
実現できる方法を教えていただきたいです。
利用できるライブラリに制限はありません。
該当のソースコード
Swift
1import Cocoa 2import Foundation 3import SwiftJWT 4import Security
Swift
1let API_KEY = "hvxxxxxxxxxebgq8fhuxxxxxxxxxxaxx" 2let apiKey = API_KEY.data(using: .utf8)! 3let jwtSign = JWTSigner.rs256(privateKey: apiKey) 4let header = Header() 5let dateNow = Date() 6struct MyPayload: Claims { 7 let email: String 8 let exp: Date 9} 10let payload = MyPayload( 11 email: "xxx@xxx.com", 12 exp: Date(timeInterval: 60*10, since: dateNow as Date) 13) 14var jwt = JWT(header: header, claims: payload) 15let signedJWT = try jwt.sign(using: jwtSign) // <-- ここでエラー 16print(signedJWT)
発生している問題・エラーメッセージ
Error code: -9997(0x-270D), Provided key doesn't have a valid ASN.1 structure (first byte should be 0x30 == SEQUENCE)
環境:
Xcode 10.1
Swift 4.2
IBM-Swift/Swift-JWT
回答1件
あなたの回答
tips
プレビュー