目录 |
---|
需求说明
客户平台需要访问注册到omc的网关设备web。
...
代码块 |
---|
std::string base64Encode(const unsigned char* data, size_t length) { BIO *bmem, *b64; BUF_MEM* bptr; b64 = BIO_new(BIO_f_base64()); BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL); bmem = BIO_new(BIO_s_mem()); b64 = BIO_push(b64, bmem); BIO_write(b64, data, length); BIO_flush(b64); BIO_get_mem_ptr(b64, &bptr); std::string encoded(bptr->data, bptr->length); BIO_free_all(b64); return encoded; } std::string createSignature(const std::string& secretKey, const std::string& timestamp, const std::string& method, const std::string& endpoint, const std::string& body) { std::string data = timestamp + method + endpoint + body; unsigned char digest[EVP_MAX_MD_SIZE]; unsigned int digestLength; HMAC(EVP_sha256(), secretKey.c_str(), secretKey.length(), reinterpret_cast<const unsigned char*>(data.c_str()), data.length(), digest, &digestLength); std::string signature = base64Encode(digest, digestLength); return signature; } |
流程图