Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Sockets] Java -> C#, Подскажите сходные классы. 
:(
    Опции темы
APXEOLOG
Дата 20.5.2010, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.4.2007
Где: Мурманск

Репутация: нет
Всего: 1



Доброго времени суток. Мне нужно сделать порт кода с явы на шарп, но я не силен в яве. Подскажите мне шарповые аналоги используемых в данном коде классов.
Код

import java.io.*;
import java.net.*;
import java.security.*;
import java.security.cert.*;
import java.security.cert.Certificate;
import javax.net.ssl.*;
import java.nio.channels.SocketChannel;
import java.nio.channels.UnresolvedAddressException;

public class SslHelper {
    private KeyStore creds, trusted;
    private SSLContext ctx = null;
    private SSLSocketFactory sfac = null;
    private int tserial = 0;
    private char[] pw;
    private HostnameVerifier ver = null;
    
    public SslHelper() {
    creds = null;
    try {
        trusted = KeyStore.getInstance(KeyStore.getDefaultType());
        trusted.load(null, null);
    } catch(Exception e) {
        throw(new Error(e));
    }
    }
    
    private synchronized SSLContext ctx() {
    if(ctx == null) {
        TrustManagerFactory tmf;
        KeyManagerFactory kmf;
        try {
        ctx = SSLContext.getInstance("TLS");
        tmf = TrustManagerFactory.getInstance("PKIX");
        kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        KeyManager[] kms = null;
        tmf.init(trusted);
        if(creds != null) {
            kmf.init(creds, pw);
            kms = kmf.getKeyManagers();
        }
        ctx.init(kms, tmf.getTrustManagers(), new SecureRandom());
        } catch(NoSuchAlgorithmException e) {
        throw(new Error(e));
        } catch(KeyStoreException e) {
        throw(new RuntimeException(e));
        } catch(UnrecoverableKeyException e) {
        /* The key should be recoverable at this stage, since
         * it was loaded successfully. */
        throw(new RuntimeException(e));
        } catch(KeyManagementException e) {
        throw(new RuntimeException(e));
        }
    }
    return(ctx);
    }

    private synchronized SSLSocketFactory sfac() {
    if(sfac == null)
        sfac = ctx().getSocketFactory();
    return(sfac);
    }
    
    private void clear() {
    ctx = null;
    sfac = null;
    }

    public synchronized void trust(Certificate cert) {
    clear();
    try {
        trusted.setCertificateEntry("cert-" + tserial++, cert);
    } catch(KeyStoreException e) {
        /* The keystore should have been initialized and should
         * not have the generated alias, so this should not
         * happen. */
        throw(new RuntimeException(e));
    }
    }
    
    public static Certificate loadX509(InputStream in) throws IOException, CertificateException {
    CertificateFactory fac = CertificateFactory.getInstance("X.509");
    return(fac.generateCertificate(in));
    }
    
    public synchronized void loadCredsPkcs12(InputStream in, char[] pw) throws IOException, CertificateException {
    clear();
    try {
        creds = KeyStore.getInstance("PKCS12");
        creds.load(in, pw);
        this.pw = pw;
    } catch(KeyStoreException e) {
        throw(new Error(e));
    } catch(NoSuchAlgorithmException e) {
        throw(new Error(e));
    }
    }
    
    public HttpsURLConnection connect(URL url) throws IOException {
    if(!url.getProtocol().equals("https"))
        throw(new MalformedURLException("Can only be used to connect to HTTPS servers"));
    HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
    conn.setSSLSocketFactory(sfac());
    if(ver != null)
        conn.setHostnameVerifier(ver);
    return(conn);
    }
    
    public HttpsURLConnection connect(String url) throws IOException {
    return(connect(new URL(url)));
    }
    
    public void ignoreName() {
    ver = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession sess) {
            return(true);
        }
        };
    }
    
    public SSLSocket connect(Socket sk, String host, int port, boolean autoclose) throws IOException {
    return((SSLSocket)sfac().createSocket(sk, host, port, autoclose));
    }
    
    public SSLSocket connect(String host, int port) throws IOException {
    Socket sk = new HackSocket();
    sk.connect(new InetSocketAddress(host, port));
    return(connect(sk, host, port, true));
    }
    
    public boolean hasCreds() {
    return(creds != null);
    }
}


--------------------
Ученые долго не знали как назвать частоту.Потом так и назвали Hz.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.