pavel-pimenov / flylinkdc-r5xx

flylinkdc-r5xx
GNU General Public License v2.0
55 stars 27 forks source link

FlylinkDC isn't sending the ADCS fourcc on the SU field of the INF even though it is enabled and supported (make auto-generated certificates in their absence). #848

Open pavel-pimenov opened 9 years ago

pavel-pimenov commented 9 years ago

From franxisc...@gmail.com on August 16, 2012 20:34:31

What steps will reproduce the problem? 1. Try to connect to any hub adc enforcing ADCS support from the client

  1. the hub will reject you because the client INF is missing the ADCS forucc on the SU field

What is the expected output? The client connects flawlessly.

What do you see instead? The client fails to connect What version of the product are you using? On what operating system? r502 -beta53-x64 on windows 7

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=809

pavel-pimenov commented 9 years ago

From franxisc...@gmail.com on August 16, 2012 11:58:14

As a side note the ADC0 isn't sent either.

pavel-pimenov commented 9 years ago

From tret2...@gmail.com on August 17, 2012 03:25:54

Сan you tell us the address of the hub?

pavel-pimenov commented 9 years ago

From franxisc...@gmail.com on August 17, 2012 03:39:57

The address is adcs://dc.p2plibre.es:2780 It's running adchpp 2.8.1 and uses the default script to detect ADCS support.

I tried with wireshark to analize the conection to a similar hub without SSL and unlike the other two clients that I tried (Eiskalt and StrongDC) Flylink didn't send the ADC0 nor the ADCS fourccs in the SU field of the INF comand, resulting in the client being banned.

pavel-pimenov commented 9 years ago

From franxisc...@gmail.com on August 19, 2012 11:12:23

Looking at the code I saw this lines in client/AdcHub.cpp :

ifdef PPA_INCLUDE_SSL

    if (CryptoManager::getInstance()->TLSOk())
    {
            su += "," + ADCS_FEATURE;
            auto &kp = CryptoManager::getInstance()->getKeyprint();
            addParam(lastInfoMap, c, "KP", "SHA256/" + Encoder::toBase32(&kp[0], kp.size()));
    }

endif

Maybe the problem is thqat PPA_INCLUDE_SSL doesn't get defined when building the clients?

pavel-pimenov commented 9 years ago

From a.rain...@gmail.com on August 22, 2012 03:35:17

most likely the CryptoManager::getInstance()->TLSOk() returns false, because of the lack of valid certificates in your Certificates folder (default) in the folder settings FlylinkDC.

Please click "Generate certificates" in the settings http://flylinkdc.com/doku.php?id=en:security and check to fix the problems or not. p.s: todo: make auto-generated certificates in their absence.

Summary: FlylinkDC isn't sending the ADCS fourcc on the SU field of the INF even though it is enabled and supported (make auto-generated certificates in their absence).
Status: Accepted
Labels: Usability Maintainability

pavel-pimenov commented 9 years ago

From tret2...@gmail.com on August 22, 2012 23:47:45

ifdef PPA_INCLUDE_SSL is on

You may see it here https://code.google.com/p/flylinkdc/source/browse/trunk/client/compiler_flylinkdc.h on line 134