[{"data":1,"prerenderedAt":291},["ShallowReactive",2],{"docs-nav:1.0.0":3,"docs:\u002Fdocs\u002Fsigned-intent":91,"docs-samples:\u002Fdocs\u002Fsigned-intent":284},[4,10,14,18,22,26,30,34,38,44,48,52,55,58,61,64,67,70,73,76,80,84,87],{"path":5,"title":6,"section":7,"order":8,"generated":9},"\u002Fdocs\u002Faccount-groups","Account groups","overview",15,false,{"path":11,"title":12,"section":7,"order":13,"generated":9},"\u002Fdocs\u002Fapi-keys","API keys",20,{"path":15,"title":16,"section":7,"order":17,"generated":9},"\u002Fdocs\u002Fapi-summary","What the API covers",5,{"path":19,"title":20,"section":7,"order":21,"generated":9},"\u002Fdocs\u002Fauthentication","Authentication",25,{"path":23,"title":24,"section":7,"order":25,"generated":9},"\u002Fdocs\u002Fenvironments","Environments",10,{"path":27,"title":28,"section":7,"order":29,"generated":9},"\u002Fdocs","API documentation",1,{"path":31,"title":32,"section":7,"order":33,"generated":9},"\u002Fdocs\u002Fmaking-requests","Making requests",30,{"path":35,"title":36,"section":7,"order":37,"generated":9},"\u002Fdocs\u002Fsigned-intent","Signed order intent",27,{"path":39,"title":40,"section":41,"order":42,"generated":43},"\u002Fdocs\u002Freference\u002Faccount-groups","Reading account groups","websocket",3,true,{"path":45,"title":46,"section":47,"order":17,"generated":43},"\u002Fdocs\u002Freference\u002Favailable-instruments","Available instruments","rest",{"path":49,"title":50,"section":47,"order":51,"generated":43},"\u002Fdocs\u002Freference\u002Fbalances","Balances",8,{"path":53,"title":54,"section":47,"order":21,"generated":43},"\u002Fdocs\u002Freference\u002Fclient-withdrawals","Withdrawals",{"path":56,"title":57,"section":41,"order":33,"generated":43},"\u002Fdocs\u002Freference\u002Ferror-codes","Trade error codes",{"path":59,"title":60,"section":47,"order":21,"generated":43},"\u002Fdocs\u002Freference\u002Forder-lookup","Reading orders back",{"path":62,"title":63,"section":41,"order":25,"generated":43},"\u002Fdocs\u002Freference\u002Forder-sessions","Order sessions and recovery",{"path":65,"title":66,"section":41,"order":13,"generated":43},"\u002Fdocs\u002Freference\u002Forder-status","Order status",{"path":68,"title":69,"section":41,"order":17,"generated":43},"\u002Fdocs\u002Freference\u002Fprice-channel","Price channel",{"path":71,"title":72,"section":47,"order":13,"generated":43},"\u002Fdocs\u002Freference\u002Fsettlement-parties","Settlement parties",{"path":74,"title":75,"section":47,"order":8,"generated":43},"\u002Fdocs\u002Freference\u002Ftrades","Trades",{"path":77,"title":78,"section":47,"order":79,"generated":43},"\u002Fdocs\u002Freference\u002Ftrading-limit","Trading limit",9,{"path":81,"title":82,"section":83,"order":33,"generated":43},"\u002Fdocs\u002Freference\u002Ftransaction-codes","Transaction code tables","shared",{"path":85,"title":86,"section":47,"order":25,"generated":43},"\u002Fdocs\u002Freference\u002Ftransactions","Transactions",{"path":88,"title":89,"section":47,"order":90,"generated":43},"\u002Fdocs\u002Freference\u002Ftransfers","Internal transfers",7,{"page":92,"elsewhere":9},{"path":35,"title":36,"description":93,"body":94,"examples":256},"Optionally signing order parameters with an RSA key, for tamper-evidence and non-repudiation.",{"type":95,"value":96,"toc":251},"minimark",[97,101,104,116,121,124,146,156,160,163,233,240,244,247],[98,99,100],"p",{},"Signed intent lets you sign the parameters of an order with an RSA private key,\nso the order carries proof it came from you and was not altered in transit.",[98,102,103],{},"It is worth having where an order passes through middleware or an internal\ngateway before reaching us, or where your own controls require\nnon-repudiation — being able to demonstrate afterwards that a specific order\nwas yours.",[105,106,108],"note",{"title":107},"Entirely optional",[98,109,110,111,115],{},"API keys work without an RSA key, and orders without a ",[112,113,114],"code",{},"signedIntent"," are\nprocessed normally on standard API authentication. This is an additional layer,\nnot a replacement for it.",[117,118,120],"h2",{"id":119},"setting-it-up","Setting it up",[98,122,123],{},"Signing is per API key, and set up once.",[125,126,127,131,143],"ol",{},[128,129,130],"li",{},"Generate an RSA key pair — 4096-bit preferred, 2048-bit the minimum.",[128,132,133,134,138,139,142],{},"Register the ",[135,136,137],"strong",{},"public"," key on the API key, either when creating it or by\nediting it later. See ",[140,141,12],"a",{"href":11},".",[128,144,145],{},"Keep the private key where your signing process can reach it and nothing\nelse can.",[98,147,148,149,152,153,142],{},"The public key is PEM, X.509 SubjectPublicKeyInfo — the block between\n",[112,150,151],{},"-----BEGIN PUBLIC KEY-----"," and ",[112,154,155],{},"-----END PUBLIC KEY-----",[117,157,159],{"id":158},"signing-an-order","Signing an order",[98,161,162],{},"The signature covers a base64-encoded payload of the order parameters, and both\ntravel together on the order message:",[164,165,170],"pre",{"className":166,"code":167,"language":168,"meta":169,"style":169},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"payload\": \"eyJxdW90ZUlkIjoi…\",\n  \"signature\": \"M4eIw8Db3jKl9xQ2vN7pZ…\"\n}\n","json","",[112,171,172,180,208,227],{"__ignoreMap":169},[173,174,176],"span",{"class":175,"line":29},"line",[173,177,179],{"class":178},"sMK4o","{\n",[173,181,183,186,190,193,196,199,203,205],{"class":175,"line":182},2,[173,184,185],{"class":178},"  \"",[173,187,189],{"class":188},"spNyl","payload",[173,191,192],{"class":178},"\"",[173,194,195],{"class":178},":",[173,197,198],{"class":178}," \"",[173,200,202],{"class":201},"sfazB","eyJxdW90ZUlkIjoi…",[173,204,192],{"class":178},[173,206,207],{"class":178},",\n",[173,209,210,212,215,217,219,221,224],{"class":175,"line":42},[173,211,185],{"class":178},[173,213,214],{"class":188},"signature",[173,216,192],{"class":178},[173,218,195],{"class":178},[173,220,198],{"class":178},[173,222,223],{"class":201},"M4eIw8Db3jKl9xQ2vN7pZ…",[173,225,226],{"class":178},"\"\n",[173,228,230],{"class":175,"line":229},4,[173,231,232],{"class":178},"}\n",[98,234,235,236,239],{},"Sign the ",[135,237,238],{},"encoded payload",", not the raw JSON, and send exactly the bytes you\nsigned. Re-encoding afterwards changes what was signed and the order is\nrejected.",[117,241,243],{"id":242},"rotating-keys","Rotating keys",[98,245,246],{},"Generate a new pair and register the new public key. Both are honoured through\na transition window, so signing can move over without an interruption — but\nconfirm the window with your Relationship Manager before relying on it.",[248,249,250],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":169,"searchDepth":42,"depth":42,"links":252},[253,254,255],{"id":119,"depth":182,"text":120},{"id":158,"depth":182,"text":159},{"id":242,"depth":182,"text":243},[257,265],{"id":258,"heading":259,"variants":260},"keypair","Generating a key pair",[261],{"title":262,"lang":263,"code":264},"Shell","bash","# Private key — keep this secure, and never send it to anyone\nopenssl genrsa -out zodia_private_key.pem 4096\n\n# Public key — this is the one you register\nopenssl rsa -pubout -in zodia_private_key.pem -out zodia_public_key.pem\n\n# Confirm the size before registering\nopenssl rsa -pubin -in zodia_public_key.pem -text -noout\n",{"id":266,"heading":159,"variants":267},"intent",[268,272,276,280],{"title":269,"lang":270,"code":271},"Python","python","import base64\nimport json\n\nfrom cryptography.hazmat.primitives import hashes, serialization\nfrom cryptography.hazmat.primitives.asymmetric import padding\n\ndef signed_intent(private_key_pem: bytes, order: dict) -> dict:\n    key = serialization.load_pem_private_key(private_key_pem, password=None)\n\n    payload = base64.b64encode(json.dumps(order).encode('utf-8'))\n    signature = key.sign(payload, padding.PKCS1v15(), hashes.SHA256())\n\n    return {\n        'payload': payload.decode('utf-8'),\n        'signature': base64.b64encode(signature).decode('utf-8')\n    }\n",{"title":273,"lang":274,"code":275},"JavaScript","javascript","import { createSign } from 'node:crypto'\n\nfunction signedIntent(privateKeyPem, order) {\n  const payload = Buffer.from(JSON.stringify(order)).toString('base64')\n\n  const signature = createSign('RSA-SHA256')\n    .update(payload)\n    .sign(privateKeyPem, 'base64')\n\n  return { payload, signature }\n}\n",{"title":277,"lang":278,"code":279},"Java","java","static Map\u003CString, String> signedIntent(PrivateKey key, String orderJson)\n        throws Exception {\n    String payload = Base64.getEncoder()\n        .encodeToString(orderJson.getBytes(StandardCharsets.UTF_8));\n\n    Signature rsa = Signature.getInstance(\"SHA256withRSA\");\n    rsa.initSign(key);\n    rsa.update(payload.getBytes(StandardCharsets.UTF_8));\n\n    return Map.of(\n        \"payload\", payload,\n        \"signature\", Base64.getEncoder().encodeToString(rsa.sign()));\n}\n",{"title":281,"lang":282,"code":283},"Go","go","func signedIntent(key *rsa.PrivateKey, order any) (map[string]string, error) {\n    body, err := json.Marshal(order)\n    if err != nil {\n        return nil, err\n    }\n\n    payload := base64.StdEncoding.EncodeToString(body)\n    digest := sha256.Sum256([]byte(payload))\n\n    signature, err := rsa.SignPKCS1v15(nil, key, crypto.SHA256, digest[:])\n    if err != nil {\n        return nil, err\n    }\n\n    return map[string]string{\n        \"payload\":   payload,\n        \"signature\": base64.StdEncoding.EncodeToString(signature),\n    }, nil\n}\n",{"html":285},[286,287,288,289,290],"\u003Cpre class=\"shiki shiki-themes material-theme-lighter material-theme material-theme-palenight\" style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#263238;--shiki-dark-bg:#292D3E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic\"># Private key — keep this secure, and never send it to anyone\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\">openssl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> genrsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -out\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> zodia_private_key.pem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C\"> 4096\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic\"># Public key — this is the one you register\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\">openssl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -pubout\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -in\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> zodia_private_key.pem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -out\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> zodia_public_key.pem\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic\"># Confirm the size before registering\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\">openssl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -pubin\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -in\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> zodia_public_key.pem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -text\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\"> -noout\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki shiki-themes material-theme-lighter material-theme material-theme-palenight\" style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#263238;--shiki-dark-bg:#292D3E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">import\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> base64\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">import\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> json\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">from\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> cryptography\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">hazmat\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">primitives \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">import\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> hashes\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> serialization\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">from\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> cryptography\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">hazmat\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">primitives\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">asymmetric \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">import\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> padding\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">def\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> signed_intent\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\">private_key_pem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\"> bytes\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\"> order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\"> dict\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> ->\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\"> dict\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    key \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> serialization\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">load_pem_private_key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">private_key_pem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\"> password\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=None)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    payload \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">b64encode\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">json\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">dumps\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">).\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">encode\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">utf-8\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    signature \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">sign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> padding\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">PKCS1v15\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(),\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> hashes\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">SHA256\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">())\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">    return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        '\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">decode\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">utf-8\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">),\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        '\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">b64encode\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">).\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">decode\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">utf-8\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki shiki-themes material-theme-lighter material-theme material-theme-palenight\" style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#263238;--shiki-dark-bg:#292D3E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">import\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> createSign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> }\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\"> from\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> '\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">node:crypto\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">function\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> signedIntent\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\">privateKeyPem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\"> order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">  const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> Buffer\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">from\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">JSON\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">stringify\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">))\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">toString\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">  const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> createSign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">RSA-SHA256\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    .\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">update\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    .\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">sign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">privateKeyPem\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> '\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">'\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">  return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki shiki-themes material-theme-lighter material-theme material-theme-palenight\" style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#263238;--shiki-dark-bg:#292D3E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">static\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\"> Map\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">String\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> String\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">>\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> signedIntent\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">PrivateKey\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\"> String\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> orderJson\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">        throws Exception \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">    String\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> payload \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> Base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">getEncoder\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        .\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">encodeToString\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">orderJson\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">getBytes\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">StandardCharsets\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">UTF_8\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">));\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">    Signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> rsa \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> Signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">getInstance\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">SHA256withRSA\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">initSign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">update\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">getBytes\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">StandardCharsets\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">UTF_8\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">));\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">    return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> Map\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">of\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        \"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        \"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> Base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">getEncoder\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">().\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">encodeToString\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">sign\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">()));\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki shiki-themes material-theme-lighter material-theme material-theme-palenight\" style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#263238;--shiki-dark-bg:#292D3E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">func\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\"> signedIntent\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\">key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> *\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\">rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\">PrivateKey\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic\"> order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B\"> any\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> (map[\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">string\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">]\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">string\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\"> error\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    body\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> json\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">Marshal\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">order\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">    if\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">!=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> nil\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">        return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> nil,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    payload \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">StdEncoding\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">EncodeToString\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">body\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    digest \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> sha256\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">Sum256\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">([]\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">byte\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">    signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> rsa\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">SignPKCS1v15\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(nil,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> key\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> crypto\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">SHA256\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> digest\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">[:])\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">    if\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">!=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> nil\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">        return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> nil,\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> err\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic\">    return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> map[\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">string\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">]\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA\">string\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        \"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">   payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">        \"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D\">signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">:\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\"> base64\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">StdEncoding\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF\">EncodeToString\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8\">signature\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">),\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">    },\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\"> nil\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1787826507180]