qt/api.cc: refactor create_jwt (#21281)

* refactor

* cleanup includes
old-commit-hash: de56de78c8
commatwo_master
Dean Lee 4 years ago committed by GitHub
parent a9a5ac9d8e
commit 1256dbb6c3
  1. 30
      selfdrive/ui/qt/api.cc
  2. 15
      selfdrive/ui/qt/api.h

@ -1,16 +1,15 @@
#include "selfdrive/ui/qt/api.h" #include "selfdrive/ui/qt/api.h"
#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
#include <QCryptographicHash>
#include <QDateTime> #include <QDateTime>
#include <QDebug> #include <QDebug>
#include <QFile> #include <QFile>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject>
#include <QNetworkReply>
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QRandomGenerator>
#include <QString>
#include <QTimer>
#include <QWidget>
#include "selfdrive/common/params.h" #include "selfdrive/common/params.h"
#include "selfdrive/common/util.h" #include "selfdrive/common/util.h"
@ -44,21 +43,14 @@ QByteArray CommaApi::rsa_sign(const QByteArray &data) {
return sig; return sig;
} }
QString CommaApi::create_jwt(const QVector<QPair<QString, QJsonValue>> &payloads, int expiry) { QString CommaApi::create_jwt(const QJsonObject &payloads, int expiry) {
QString dongle_id = QString::fromStdString(Params().get("DongleId")); QJsonObject header = {{"alg", "RS256"}};
QJsonObject header;
header.insert("alg", "RS256");
QJsonObject payload;
payload.insert("identity", dongle_id);
QString dongle_id = QString::fromStdString(Params().get("DongleId"));
auto t = QDateTime::currentSecsSinceEpoch(); auto t = QDateTime::currentSecsSinceEpoch();
payload.insert("nbf", t); QJsonObject payload = {{"identity", dongle_id}, {"nbf", t}, {"iat", t}, {"exp", t + expiry}};
payload.insert("iat", t); for (auto it = payloads.begin(); it != payloads.end(); ++it) {
payload.insert("exp", t + expiry); payload.insert(it.key(), it.value());
for (auto &load : payloads) {
payload.insert(load.first, load.second);
} }
auto b64_opts = QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals; auto b64_opts = QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals;

@ -1,25 +1,16 @@
#pragma once #pragma once
#include <openssl/bio.h> #include <QJsonObject>
#include <openssl/pem.h>
#include <openssl/rsa.h>
#include <QCryptographicHash>
#include <QJsonValue>
#include <QNetworkReply> #include <QNetworkReply>
#include <QNetworkRequest>
#include <QPair>
#include <QString> #include <QString>
#include <QVector> #include <QTimer>
#include <QWidget>
#include <atomic>
class CommaApi : public QObject { class CommaApi : public QObject {
Q_OBJECT Q_OBJECT
public: public:
static QByteArray rsa_sign(const QByteArray &data); static QByteArray rsa_sign(const QByteArray &data);
static QString create_jwt(const QVector<QPair<QString, QJsonValue>> &payloads = {}, int expiry = 3600); static QString create_jwt(const QJsonObject &payloads = {}, int expiry = 3600);
}; };
/** /**

Loading…
Cancel
Save