| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -15,11 +15,13 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "selfdrive/common/util.h" | 
					 | 
					 | 
					 | 
					#include "selfdrive/common/util.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "selfdrive/hardware/hw.h" | 
					 | 
					 | 
					 | 
					#include "selfdrive/hardware/hw.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					namespace CommaApi { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const std::string private_key_path = | 
					 | 
					 | 
					 | 
					const std::string private_key_path = | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Hardware::PC() ? util::getenv_default("HOME", "/.comma/persist/comma/id_rsa", "/persist/comma/id_rsa") | 
					 | 
					 | 
					 | 
					    Hardware::PC() ? util::getenv_default("HOME", "/.comma/persist/comma/id_rsa", "/persist/comma/id_rsa") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                   : "/persist/comma/id_rsa"; | 
					 | 
					 | 
					 | 
					                   : "/persist/comma/id_rsa"; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					QByteArray CommaApi::rsa_sign(const QByteArray &data) { | 
					 | 
					 | 
					 | 
					QByteArray rsa_sign(const QByteArray &data) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  auto file = QFile(private_key_path.c_str()); | 
					 | 
					 | 
					 | 
					  auto file = QFile(private_key_path.c_str()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (!file.open(QIODevice::ReadOnly)) { | 
					 | 
					 | 
					 | 
					  if (!file.open(QIODevice::ReadOnly)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    qDebug() << "No RSA private key found, please run manager.py or registration.py"; | 
					 | 
					 | 
					 | 
					    qDebug() << "No RSA private key found, please run manager.py or registration.py"; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -43,7 +45,7 @@ QByteArray CommaApi::rsa_sign(const QByteArray &data) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return sig; | 
					 | 
					 | 
					 | 
					  return sig; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					QString CommaApi::create_jwt(const QJsonObject &payloads, int expiry) { | 
					 | 
					 | 
					 | 
					QString create_jwt(const QJsonObject &payloads, int expiry) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QJsonObject header = {{"alg", "RS256"}}; | 
					 | 
					 | 
					 | 
					  QJsonObject header = {{"alg", "RS256"}}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QString dongle_id = QString::fromStdString(Params().get("DongleId")); | 
					 | 
					 | 
					 | 
					  QString dongle_id = QString::fromStdString(Params().get("DongleId")); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -63,6 +65,7 @@ QString CommaApi::create_jwt(const QJsonObject &payloads, int expiry) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return jwt; | 
					 | 
					 | 
					 | 
					  return jwt; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}  // namespace CommaApi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					HttpRequest::HttpRequest(QObject *parent, const QString &requestURL, const QString &cache_key, bool create_jwt_) : cache_key(cache_key), create_jwt(create_jwt_), QObject(parent) { | 
					 | 
					 | 
					 | 
					HttpRequest::HttpRequest(QObject *parent, const QString &requestURL, const QString &cache_key, bool create_jwt_) : cache_key(cache_key), create_jwt(create_jwt_), QObject(parent) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  networkAccessManager = new QNetworkAccessManager(this); | 
					 | 
					 | 
					 | 
					  networkAccessManager = new QNetworkAccessManager(this); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |