R
RED-BARON
Fortgeschrittenes Mitglied
- 19
Hallo 
zum Glück habe ich ein Anhaltspunkt und weiß genau wo ich hin muss.
Zur Verdeutlichung hier der Ablauf in einer anderen App, welcher nach
Android/Java gebracht werden soll.
Es existiert ein verbundener Socket, der in SSL-Mode versetzt werden soll.
Die bisherige App macht das mit openSSL wie folgt.
// Methode festlegen
m_pSSLMethod = TLSv1_client_method();
// Context erstellen
m_pSSLContext = SSL_CTX_new(m_pSSLMethod);
// selbst signiertes Serverzertifikat, nicht in Cert-chain einer
// der großen bekannten CAs enthalten !
SSL_CTX_load_verify_locations(m_pSSLContext, CA_CERT);
// Clientzertifikat laden
SSL_CTX_use_certificate_file(m_pSSLContext, CERT_CLIENT, SSL_FILETYPE_PEM);
// Clientkey laden
SSL_CTX_use_PrivateKey_file(m_pSSLContext, PRIV_CLIENT, SSL_FILETYPE_PEM);
soweit die Vorbereitungen, und nun der SSL-Handshake
// SSL initalisieren ...
m_pSSL = SSL_new(m_pSSLContext);
// ... den bereits verbundenen Socket an SSL Layer übergeben
SSL_set_fd(m_pSSL, m_sock);
// ... Status setzten
SSL_set_connect_state(m_pSSL);
// Handshake
SSL_do_handshake(m_pSSL);
Mein Problem ist nur den Wald vor Bäumen nicht zu sehen
obwohl ich diesmal schon ein paar Infos hab sammeln können
wie dieses Beispiel:
SSLContext and Key manager : SSL SocketSecurityJava Tutorial
und diese Meldung habe ich auch schon im Debugger gesehen
[android-developers] CertPathValidatorException: TrustAnchor for CertPat
wie schauen nun meine Codefragmente in Java aus:
: SSLSocket mit SSLContext "initalisiere"
SSLSocket c =(SSLSocket)f.createSocket(mSocket, mHost, mPort, false);
Mein Problem ist nicht besonders androidspezifisch, bestenfalls - wie
bekomme ich meine Zerti-Dateien in den Emulator geladen. Weil ohne
die da drin zu haben muss ich wohl mit InputStream garnicht erst an-
fangen.
Herzlichen Dank fürs Kopfzerbrechen schon mal

zum Glück habe ich ein Anhaltspunkt und weiß genau wo ich hin muss.
Zur Verdeutlichung hier der Ablauf in einer anderen App, welcher nach
Android/Java gebracht werden soll.
Es existiert ein verbundener Socket, der in SSL-Mode versetzt werden soll.
Die bisherige App macht das mit openSSL wie folgt.
// Methode festlegen
m_pSSLMethod = TLSv1_client_method();
// Context erstellen
m_pSSLContext = SSL_CTX_new(m_pSSLMethod);
// selbst signiertes Serverzertifikat, nicht in Cert-chain einer
// der großen bekannten CAs enthalten !
SSL_CTX_load_verify_locations(m_pSSLContext, CA_CERT);
// Clientzertifikat laden
SSL_CTX_use_certificate_file(m_pSSLContext, CERT_CLIENT, SSL_FILETYPE_PEM);
// Clientkey laden
SSL_CTX_use_PrivateKey_file(m_pSSLContext, PRIV_CLIENT, SSL_FILETYPE_PEM);
soweit die Vorbereitungen, und nun der SSL-Handshake
// SSL initalisieren ...
m_pSSL = SSL_new(m_pSSLContext);
// ... den bereits verbundenen Socket an SSL Layer übergeben
SSL_set_fd(m_pSSL, m_sock);
// ... Status setzten
SSL_set_connect_state(m_pSSL);
// Handshake
SSL_do_handshake(m_pSSL);
Mein Problem ist nur den Wald vor Bäumen nicht zu sehen
obwohl ich diesmal schon ein paar Infos hab sammeln können
wie dieses Beispiel:
SSLContext and Key manager : SSL SocketSecurityJava Tutorial
und diese Meldung habe ich auch schon im Debugger gesehen

[android-developers] CertPathValidatorException: TrustAnchor for CertPat
wie schauen nun meine Codefragmente in Java aus:
// Context erstellen mit TLS Methode
SSLContext ctx = SSLContext.getInstance("TLS");
SSLContext ctx = SSLContext.getInstance("TLS");
//
, laden der Zertifikate, wobei ich diese als
// -----BEGIN CERTIFICATE-----
// und
// -----BEGIN RSA PRIVATE KEY-----
// vorliegen habe
//
// hier fehlt mir ebend der entscheidende Teil

// -----BEGIN CERTIFICATE-----
// und
// -----BEGIN RSA PRIVATE KEY-----
// vorliegen habe
//
// hier fehlt mir ebend der entscheidende Teil
// SSLSocket an bestehenden Socket binden
SSLSocketFactory f = (SSLSocketFactory) SSLSocketFactory.getDefault();
// SSLSocketFactory f = (SSLSocketFactory) SSLSocketFactory.getDefault();

SSLSocket c =(SSLSocket)f.createSocket(mSocket, mHost, mPort, false);
// Handshake
c.startHandshake();
Mein Problem ist nicht besonders androidspezifisch, bestenfalls - wie
bekomme ich meine Zerti-Dateien in den Emulator geladen. Weil ohne
die da drin zu haben muss ich wohl mit InputStream garnicht erst an-
fangen.
Herzlichen Dank fürs Kopfzerbrechen schon mal
