Hallo Zusammen
ich hoffe von euch kann mir jemand helfen.
Ich bin noche ein Swift "frischling" und versuche ein App zu programmieren.
Mit mehr oder weniger grossem Erfolg.
Ich habe lange an der API schnittstelle rumgebastelt dann habe ich rausgefunden, das ich dass meiste nicht mit der API sondern mit der websocket API machen muss.
Nun versuche ich einen connect hinzubekommen resp die Authentifizierung.
ich bekomme die irgendiwe nicht hin...
Was muss ich machen:
Client signature (digest of HMAC-rsa256 with client's API Secret Key, applied to the string, which is concatenation timestamp and API Key)
Sample in Python:
Alles anzeigen
nun ich habe dann versucht:
Importiert habe ich IDZSwiftCommonCrypto das macht das coding.
hier sind die sample daten:
Test case 1 for createSignature:
Note: timestamp 1448034533 means Fri Nov 20 2015 17:48:53 GMT+0200 (EET)
Test case 2 for createSignature:
Note: timestamp 1448035135 means Fri Nov 20 2015 17:58:55 GMT+0200 (EET)
nun ich bekomme es irgendiwe nicht hin...
kann mir bitte jemand helfen?
Gruss
ich hoffe von euch kann mir jemand helfen.
Ich bin noche ein Swift "frischling" und versuche ein App zu programmieren.
Mit mehr oder weniger grossem Erfolg.
Ich habe lange an der API schnittstelle rumgebastelt dann habe ich rausgefunden, das ich dass meiste nicht mit der API sondern mit der websocket API machen muss.
Nun versuche ich einen connect hinzubekommen resp die Authentifizierung.
ich bekomme die irgendiwe nicht hin...
Was muss ich machen:
Client signature (digest of HMAC-rsa256 with client's API Secret Key, applied to the string, which is concatenation timestamp and API Key)
Sample in Python:
Python-Quellcode
- import hmac
- import hashlib
- import datetime
- import json
- # Python 2.7
- #
- def create_signature_Py27(key, secret): # (string key, string secret)
- timestamp = int(datetime.datetime.now().timestamp()) # UNIX timestamp in seconds
- string = "{}{}".format(timestamp, key)
- return hmac.new(secret, string, hashlib.sha256).hexdigest()
- # Python 2.7 - 3.5+
- # Note: latest versions of hmac lib requires 'secret' and 'string' as byte strings but not unicode
- #
- def create_signature(key, secret): # (string key, string secret)
- timestamp = int(datetime.datetime.now().timestamp()) # UNIX timestamp in seconds
- string = "{}{}".format(timestamp, key)
- return timestamp, hmac.new(secret.encode(), string.encode(), hashlib.sha256).hexdigest()
- def auth_request(key, secret):
- timestamp, signature = create_signature(key, secret)
- return json.dumps({'e': 'auth',
- 'auth': {'key': key, 'signature': signature, 'timestamp': timestamp,}, 'oid': 'auth', })
- auth_request = auth_request('1WZbtMTbMbo2NsW12vOz9IuPM', '1IuUeW4IEWatK87zBTENHj1T17s')
nun ich habe dann versucht:
Quellcode
- let Timestamp = Date().timeIntervalSince1970
- let RequestSignature: String = "\(Timestamp)" + UserKey + UserSecret
- let CryptSignature: String = RequestSignature.sha256()
- let AuthDetailArray: ApiAuth.ApiAuthDetail = ApiAuth.ApiAuthDetail(key: UserKey, signature: CryptSignature, timestamp: Timestamp)
- let AuthArray: ApiAuth = ApiAuth(e: "auth", auth: AuthDetailArray, timestamp: Timestamp)
hier sind die sample daten:
Test case 1 for createSignature:
apiSecret | 1IuUeW4IEWatK87zBTENHj1T17s |
timestamp | 1448034533 |
apiKey | 1WZbtMTbMbo2NsW12vOz9IuPM |
signature | 7d581adb01ad22f1ed38e1159a7f08ac5d83906ae1a42fe17e7d977786fe9694 |
Note: timestamp 1448034533 means Fri Nov 20 2015 17:48:53 GMT+0200 (EET)
Test case 2 for createSignature:
apiSecret | 1IuUeW4IEWatK87zBTENHj1T17s |
timestamp | 1448035135 |
apiKey | 1WZbtMTbMbo2NsW12vOz9IuPM |
signature | 9a84b70f51ea2b149e71ef2436752a1a7c514f521e886700bcadd88f1767b7db |
Note: timestamp 1448035135 means Fri Nov 20 2015 17:58:55 GMT+0200 (EET)
nun ich bekomme es irgendiwe nicht hin...
kann mir bitte jemand helfen?
Gruss