Auto-generate Did

This commit is contained in:
Florian Märkl 2019-08-15 23:09:46 +02:00
parent 73ccfb6f22
commit eeb28c7c8a
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
5 changed files with 7 additions and 15 deletions

View file

@ -48,7 +48,6 @@ struct StreamSessionConnectInfo
QString host;
QString regist_key;
QString morning;
QString did;
ChiakiConnectVideoProfile video_profile;
};

View file

@ -75,10 +75,6 @@ int main(int argc, char *argv[])
QCommandLineOption morning_option("morning", "", "morning");
parser.addOption(morning_option);
QCommandLineOption did_option("did", "", "did");
parser.addOption(did_option);
parser.process(app);
QStringList args = parser.positionalArguments();
@ -100,13 +96,12 @@ int main(int argc, char *argv[])
connect_info.host = host;
connect_info.regist_key = parser.value(regist_key_option);
connect_info.morning = parser.value(morning_option);
connect_info.did = parser.value(did_option);
chiaki_connect_video_profile_preset(&connect_info.video_profile,
CHIAKI_VIDEO_RESOLUTION_PRESET_720p,
CHIAKI_VIDEO_FPS_PRESET_30);
if(connect_info.regist_key.isEmpty() || connect_info.morning.isEmpty() || connect_info.did.isEmpty())
if(connect_info.regist_key.isEmpty() || connect_info.morning.isEmpty())
parser.showHelp(1);
return RunStream(app, connect_info);

View file

@ -64,12 +64,6 @@ StreamSession::StreamSession(const StreamSessionConnectInfo &connect_info, QObje
if(err != CHIAKI_ERR_SUCCESS || morning_size != sizeof(chiaki_connect_info.morning))
throw ChiakiException("Morning invalid");
size_t did_size = sizeof(chiaki_connect_info.did);
QByteArray did_str = connect_info.did.toUtf8();
err = chiaki_base64_decode(did_str.constData(), did_str.length(), chiaki_connect_info.did, &did_size);
if(err != CHIAKI_ERR_SUCCESS || did_size != sizeof(chiaki_connect_info.did))
throw ChiakiException("Did invalid");
memset(&keyboard_state, 0, sizeof(keyboard_state));
err = chiaki_session_init(&session, &chiaki_connect_info, log.GetChiakiLog());

View file

@ -72,7 +72,6 @@ typedef struct chiaki_connect_info_t
const char *host; // null terminated
char regist_key[CHIAKI_SESSION_AUTH_SIZE]; // must be completely filled (pad with \0)
uint8_t morning[0x10];
uint8_t did[CHIAKI_RP_DID_SIZE];
ChiakiConnectVideoProfile video_profile;
} ChiakiConnectInfo;

View file

@ -155,7 +155,12 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_session_init(ChiakiSession *session, Chiaki
memcpy(session->connect_info.regist_key, connect_info->regist_key, sizeof(session->connect_info.regist_key));
memcpy(session->connect_info.morning, connect_info->morning, sizeof(session->connect_info.morning));
memcpy(session->connect_info.did, connect_info->did, sizeof(session->connect_info.did));
const uint8_t did_prefix[] = { 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x40, 0x00, 0x80 };
const uint8_t did_suffix[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
memcpy(session->connect_info.did, did_prefix, sizeof(did_prefix));
chiaki_random_bytes_crypt(session->connect_info.did + sizeof(did_prefix), sizeof(session->connect_info.did) - sizeof(did_prefix) - sizeof(did_suffix));
memcpy(session->connect_info.did + sizeof(session->connect_info.did) - sizeof(did_suffix), did_suffix, sizeof(did_suffix));
session->connect_info.video_profile = connect_info->video_profile;