I referred to the curl sample and wrote the following program. ```C #include <ctype.h> #include <curl/curl.h> #include <stdio.h> #include <stdlib.h> #include <string.h>
struct data { char trace_ascii; /* 1 or 0 */ }; struct MemoryStruct { char *memory; size_t size; }; static void dump(const char *text, FILE *stream, unsigned char *ptr, size_t size, char nohex) { size_t i; size_t c; unsigned int width = 0x10; if (nohex) /* without the hex output, we can fit more on screen */ width = 0x40; fprintf(stream, "%s, %10.10lu bytes (0x%8.8lx)\n", text, (unsigned long)size, (unsigned long)size); for (i = 0; i < size; i += width) { fprintf(stream, "%4.4lx: ", (unsigned long)i); if (!nohex) { /* hex not disabled, show it */ for (c = 0; c < width; c++) if (i + c < size) fprintf(stream, "%02x ", ptr[i + c]); else fputs(" ", stream); } for (c = 0; (c < width) && (i + c < size); c++) { /* check for 0D0A; if found, skip past and start a new line of output */ if (nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D && ptr[i + c + 1] == 0x0A) { i += (c + 2 - width); break; } fprintf(stream, "%c", (ptr[i + c] >= 0x20) && (ptr[i + c] < 0x80) ? ptr[i + c] : '.'); /* check again for 0D0A, to avoid an extra \n if it's at width */ if (nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D && ptr[i + c + 2] == 0x0A) { i += (c + 3 - width); break; } } fputc('\n', stream); /* newline */ } fflush(stream); } static int my_trace(CURL *handle, curl_infotype type, char *data, size_t size, void *userp) { struct data *config = (struct data *)userp; const char *text; (void)handle; /* prevent compiler warning */ switch (type) { case CURLINFO_TEXT: fprintf(stderr, "== Info: %s", data); /* FALLTHROUGH */ default: /* in case a new one is introduced to shock us */ return 0; case CURLINFO_HEADER_OUT: text = "=> Send header"; break; case CURLINFO_DATA_OUT: text = "=> Send data"; break; case CURLINFO_SSL_DATA_OUT: text = "=> Send SSL data"; break; case CURLINFO_HEADER_IN: text = "<= Recv header"; break; case CURLINFO_DATA_IN: text = "<= Recv data"; break; case CURLINFO_SSL_DATA_IN: text = "<= Recv SSL data"; break; } dump(text, stderr, (unsigned char *)data, size, config->trace_ascii); return 0; } static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; char *ptr = realloc(mem->memory, mem->size + realsize + 1); if (!ptr) { /* out of memory! */ printf("not enough memory (realloc returned NULL)\n"); return 0; } mem->memory = ptr; memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; } int main(void) { CURL *curl_ptr = NULL; struct data config; struct MemoryStruct chunk; struct curl_slist *headers_ptr = NULL; char subscriptionHeader[128]; CURLcode res; config.trace_ascii = 1; /* enable ascii tracing */ chunk.memory = malloc(1); /* will be grown as needed by realloc above */ chunk.size = 0; /* no data at this point */ curl_ptr = curl_easy_init(); if (curl_ptr) { headers_ptr = curl_slist_append(headers_ptr, "Content-Length: 0"); snprintf(subscriptionHeader, 128, "%s: %s", "Ocp-Apim-Subscription-Key", "My-Key"); headers_ptr = curl_slist_append(headers_ptr, subscriptionHeader); curl_easy_setopt(curl_ptr, CURLOPT_URL, "https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken"); curl_easy_setopt(curl_ptr, CURLOPT_POST, 1L); if (NULL != headers_ptr) { curl_easy_setopt(curl_ptr, CURLOPT_HTTPHEADER, headers_ptr); } curl_easy_setopt(curl_ptr, CURLOPT_DEBUGFUNCTION, my_trace); curl_easy_setopt(curl_ptr, CURLOPT_DEBUGDATA, &config); /* the DEBUGFUNCTION has no effect until we enable VERBOSE */ curl_easy_setopt(curl_ptr, CURLOPT_VERBOSE, 1L); /* send all data to this function */ curl_easy_setopt(curl_ptr, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); /* we pass our 'chunk' struct to the callback function */ curl_easy_setopt(curl_ptr, CURLOPT_WRITEDATA, (void *)&chunk); /* Perform the request, res will get the return code */ res = curl_easy_perform(curl_ptr); curl_slist_free_all(headers_ptr); /* Check for errors */ if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { /* * Now, our chunk.memory points to a memory block that is chunk.size * bytes big and contains the remote file. * * Do something nice with it! */ printf("%s\n", chunk.memory); } /* always cleanup */ curl_easy_cleanup(curl_ptr); } free(chunk.memory); curl_global_cleanup(); return 0; } ``` But the program freezes and the log is as follows. ```bash root@db4f56f11d6f:/# gcc get_token.c -o get_token -lcurl root@db4f56f11d6f:/# ./get_token == Info: Trying 20.205.69.100:443... == Info: Connected to eastasia.api.cognitive.microsoft.com (20.205.69.100) port 443 (#0) == Info: ALPN, offering h2 == Info: ALPN, offering http/1.1 == Info: CAfile: /etc/ssl/certs/ca-certificates.crt == Info: CApath: /etc/ssl/certs == Info: TLSv1.0 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.3 (OUT), TLS handshake, Client hello (1): => Send SSL data, 0000000512 bytes (0x00000200) 0000: ......Es}.w....j=^..R..I.h....Z....lOY .....4.d..L....\.......&4 0040: ._,SiE..>.......,.0.........+./...$.(.k.#.'.g.....9.....3.....=. 0080: <.5./.....u...).'..$eastasia.api.cognitive.microsoft.com........ 00c0: ..........................3t.........h2.http/1.1.........1.....* 0100: .(.........................................+........-.....3.&.$. 0140: .. w........B.].......<...M'..e*w'7............................. 0180: ................................................................ 01c0: ................................................................ == Info: TLSv1.2 (IN), TLS header, Certificate Status (22): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.3 (IN), TLS handshake, Server hello (2): <= Recv SSL data, 0000000098 bytes (0x00000062) 0000: ...^..d.6A........|....jP......~.n6u.. >...Z..,.3A]Q....G.5.f.A& 0040: .@o.....0..........h2............. == Info: TLSv1.2 (IN), TLS handshake, Certificate (11): <= Recv SSL data, 0000003808 bytes (0x00000ee0) 0000: ..........0...0..........3....7!6C.D........0...*.H........0Y1.0 0040: ...U....US1.0...U....Microsoft Corporation1*0(..U...!Microsoft A 0080: zure TLS Issuing CA 020...230720152207Z..240627235959Z0{1.0...U. 00c0: ...US1.0...U....WA1.0...U....Redmond1.0...U....Microsoft Corpora 0100: tion1-0+..U...$eastasia.api.cognitive.microsoft.com0.."0...*.H.. 0140: ...........0...........s..P(Pff.v.?w*..w...c...6.....I.a........ 0180: ...}.....L0.VO,./.*....r....._..-..-.X......3C........2..A.!.0.. 01c0: .tD..4.S!....?..;.p+/..[.>.4..rcg.......?..3t....8.g...4f.}0.]D> 0200: ..m.m..):.Q....oL..n....i.......#w8%a?...h.Wt .. Cb..XY......<.- 0240: ...-..[.#.\..... V..........u0..q0..~..+.....y......n...j.h.w... 0280: .d.....\......2.F|....QHYFq.......s........H0F.!.....}..q.%.+>. 02c0: 8..?P.L.*......N..!....#......@6.ABE....,+.4k.T!.....u.H..k..G4. 0300: .j...0..R..V.,.....9..s....s........F0D. [4yd.....z..r...'.....L 0340: k.:.z..$.. '..$o.9Af..!"...a.n.a...2....qK..v....k?.."....\k.p.q 0380: l.Q..4..=0H.......s..).....G0E. ....+....$.......|&..1/b...1.... 03c0: .!......cM.....8..m..$.1.e..W..4.^.0'..+.....7....0.0...+....... 0400: 0...+.......0<..+.....7.../0-.%+.....7.........F...........]...i 0440: ...>..d..&0....+..........0..0m..+.....0..ahttp://www.microsoft. 0480: com/pkiops/certs/Microsoft%20Azure%20TLS%20Issuing%20CA%2002%20- 04c0: %20xsign.crt0-..+.....0..!http://oneocsp.microsoft.com/ocsp0...U 0500: ............BK.X.p.=......0...U...........0....U.....0.$eastasi 0540: a.api.cognitive.microsoft.com.$eastasia.dev.cognitive.microsoft. 0580: com..*.cognitiveservices.azure.com..*.openai.azure.com0...U..... 05c0: ..0.0d..U...]0[0Y.W.U.Shttp://www.microsoft.com/pkiops/crl/Micro 0600: soft%20Azure%20TLS%20Issuing%20CA%2002.crl0f..U. ._0]0Q..+.....7 0640: L.}..0A0?..+........3http://www.microsoft.com/pkiops/Docs/Reposi 0680: tory.htm0...g.....0...U.#..0.......!b&...y.aA.`.bg.0...U.%..0... 06c0: +.........+.......0...*.H.............I.....!Lu:.F"w....O.....'0 0700: [0....~.%t.H."...........j3.....&I!.+4....&......{..#......R.N' 0740: V...<.....=.].iB9ne.... ..C.$..........I=.....F.g....Xv.5.}>... 0780: 6....3.wC+V)...-.^..t. 3S......Y.h..7.z...z......v]y)2......#p`. 07c0: ......6.=....S.=..,....u.d.....|.f...MF.|<r9.-..jY..p..ioe.-2.(. 0800: .....3.`.Hx.....p..%.....C.%..<....2 1.|.Q.~."....7...|..=.....Z 0840: ...z..6z...H;ck?....{...U.>..vE...9~G...p....D...u|9....C..~.ooh 0880: j.6.....g=Y...?...:.(....m.G.:|.=`+.O.A...K.....C..i.......=...n 08c0: xP..:.w.r...._gK........<.+.$....\.......0...0...........j.|.... 0900: ......2.0...*.H........0a1.0...U....US1.0...U....DigiCert Inc1.0 0940: ...U....www.digicert.com1 0...U....DigiCert Global Root G20...20 0980: 0729123000Z..240627235959Z0Y1.0...U....US1.0...U....Microsoft Co 09c0: rporation1*0(..U...!Microsoft Azure TLS Issuing CA 020.."0...*.H 0a00: .............0.........b;R..N.....bd........-...#l.R.<.Z..Ph.... 0a40: .....)a2!.5....O.I..L.......F.(.....*.As.........Y.#....b."+.... 0a80: .?..q....k4..#(..$.K.e..].C.V...C).C&...I....P...U.M..8.+!.].... 0ac0: .8t..+/.9..y......!....h*......;x.y.$ XC..s~....f..1J...I,.O.'.. 0b00: ..K..........O...?......m.'.$V.4.%C...X]......%.#....p.....'...z 0b40: .n.?...tX.A.@...+....P9....5.JX...PQ.l..g....m...~....A..Af@.Wy. 0b80: ..W....7..u}._.b..-n.Jjqd..\L.9{S.l.W.$ ...1{....m.\./T...-O.... 0bc0: .o.l...Q....J..-Xa....U....K.:'&tfJ...S..*.."\.d.:..X.3^..Zp...i 0c00: ."B...PW8...c".`i..o..........0...0...U..........!b&...y.aA.`.b 0c40: g.0...U.#..0...N"T ....n..........90...U...........0...U.%..0... 0c80: +.........+.......0...U.......0.......0v..+........j0h0$..+..... 0cc0: 0...http://ocsp.digicert.com0@..+.....0..4http://cacerts.digicer 0d00: t.com/DigiCertGlobalRootG2.crt0{..U...t0r07.5.3.1http://crl3.dig 0d40: icert.com/DigiCertGlobalRootG2.crl07.5.3.1http://crl4.digicert.c 0d80: om/DigiCertGlobalRootG2.crl0...U. ..0.0...g.....0...g.....0...+. 0dc0: ....7.......0...*.H.............3....c.M..An..:.. S....G.e..G_7. 0e00: ~.JAZ.a..B.....&J..:O..O..~W/l..RAV.P.tA..,y.m~..q1...X.x.N..... 0e40: NC..Y.aF..<..<aG@.....E.."..Y=B.X."wV.AS9..R.(...N....R....t>K. 0e80: ....r.{..l...=g.9q..nw....'..^...l..v.?...?..=.n/A,;s .-..%.5zy. 0ec0: [..7)A.T...........'w.....hN..^. == Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12): <= Recv SSL data, 0000000365 bytes (0x0000016d) 0000: ...i...a...#9V.p....".h..(a8.6.Jp..........Z..bd.9.E.^..p@X.o... 0040: $hU.+....-...e..,2b..C*O.3.ql........._l.....L.R.c.Qw.{...1l.M.. 0080: ......k.\A..........I3....T.}..3.....^...,.a)..7X.lfk`..>i.i)T. 00c0: SZj>.i....2.N%.Z.......OM...3.........T..X.i.~...y..gy..qLxz.., 0100: ....C....6;.*......=......{Mw.mk.E:'....."...S.)/...B......(.s". 0140: @~.b...._....4G=.g........P...'Rh...BM 'B.Y> == Info: TLSv1.2 (IN), TLS handshake, Server finished (14): <= Recv SSL data, 0000000004 bytes (0x00000004) 0000: .... == Info: TLSv1.2 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....f == Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16): => Send SSL data, 0000000102 bytes (0x00000066) 0000: ...ba.........V.!.(..=QK..L. j.S...dT,.{)..j..:....I..MyC.. .... 0040: ...P.e.Gf..,r,..H.@..[Gu.....z.I...... == Info: TLSv1.2 (OUT), TLS header, Finished (20): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): => Send SSL data, 0000000001 bytes (0x00000001) 0000: . == Info: TLSv1.2 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....( == Info: TLSv1.2 (OUT), TLS handshake, Finished (20): => Send SSL data, 0000000016 bytes (0x00000010) 0000: ......R&.s.2...| == Info: TLSv1.2 (IN), TLS header, Finished (20): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.2 (IN), TLS header, Certificate Status (22): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ....( == Info: TLSv1.2 (IN), TLS handshake, Finished (20): <= Recv SSL data, 0000000016 bytes (0x00000010) 0000: ...........Vo*.H == Info: SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 == Info: ALPN, server accepted to use h2 == Info: Server certificate: == Info: subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; CN=eastasia.api.cognitive.microsoft.com == Info: start date: Jul 20 15:22:07 2023 GMT == Info: expire date: Jun 27 23:59:59 2024 GMT == Info: subjectAltName: host "eastasia.api.cognitive.microsoft.com" matched cert's "eastasia.api.cognitive.microsoft.com" == Info: issuer: C=US; O=Microsoft Corporation; CN=Microsoft Azure TLS Issuing CA 02 == Info: SSL certificate verify ok. == Info: Using HTTP2, server supports multiplexing == Info: Connection state changed (HTTP/2 confirmed) == Info: Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....0 == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....3 == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....% == Info: Using Stream ID: 1 (easy handle 0x5603cf886130) == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ..... => Send header, 0000000222 bytes (0x000000de) 0000: POST /sts/v1.0/issueToken HTTP/2 0022: Host: eastasia.api.cognitive.microsoft.com 004e: accept: */* 005b: content-length: 0 006e: ocp-apim-subscription-key: My-Key 00ab: content-type: application/x-www-form-urlencoded 00dc: == Info: TLSv1.2 (IN), TLS header, Supplemental data (23): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ....@ == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....! ^C root@db4f56f11d6f:/# ``` I try the curl command, it works. ```bash $ curl -v -X POST "https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken" \ -H "Content-Length: 0" \ -H "Ocp-Apim-Subscription-Key: My-key" My-token ``` After add the line `curl_easy_setopt(curl_ptr, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_1_1);`, I get token successfully. ```bash root@db4f56f11d6f:/# gcc get_token.c -o get_token -lcurl root@db4f56f11d6f:/# ./get_token == Info: Trying 20.205.69.100:443... == Info: Connected to eastasia.api.cognitive.microsoft.com (20.205.69.100) port 443 (#0) == Info: ALPN, offering http/1.1 == Info: CAfile: /etc/ssl/certs/ca-certificates.crt == Info: CApath: /etc/ssl/certs == Info: TLSv1.0 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.3 (OUT), TLS handshake, Client hello (1): => Send SSL data, 0000000512 bytes (0x00000200) 0000: .......y.(0|.`.\.e[R.._.6..Z......f# . .^.v..W.{.1..Tm.>..&.9~.. 0040: o-......>.......,.0.........+./...$.(.k.#.'.g.....9.....3.....=. 0080: <.5./.....u...).'..$eastasia.api.cognitive.microsoft.com........ 00c0: ..........................3t.........http/1.1.........1.....*.(. 0100: ........................................+........-.....3.&.$... 0140: ).db...i/.F..V4.k4CQ..3......................................... 0180: ................................................................ 01c0: ................................................................ == Info: TLSv1.2 (IN), TLS header, Certificate Status (22): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.3 (IN), TLS handshake, Server hello (2): <= Recv SSL data, 0000000104 bytes (0x00000068) 0000: ...d..d.7/..i.q..F0........%_p...l.#.. .:...&......E..Q.|#.*6.C 0040: .o)mw...0..........http/1.1............. == Info: TLSv1.2 (IN), TLS handshake, Certificate (11): <= Recv SSL data, 0000003808 bytes (0x00000ee0) 0000: ..........0...0..........3....7!6C.D........0...*.H........0Y1.0 0040: ...U....US1.0...U....Microsoft Corporation1*0(..U...!Microsoft A 0080: zure TLS Issuing CA 020...230720152207Z..240627235959Z0{1.0...U. 00c0: ...US1.0...U....WA1.0...U....Redmond1.0...U....Microsoft Corpora 0100: tion1-0+..U...$eastasia.api.cognitive.microsoft.com0.."0...*.H.. 0140: ...........0...........s..P(Pff.v.?w*..w...c...6.....I.a........ 0180: ...}.....L0.VO,./.*....r....._..-..-.X......3C........2..A.!.0.. 01c0: .tD..4.S!....?..;.p+/..[.>.4..rcg.......?..3t....8.g...4f.}0.]D> 0200: ..m.m..):.Q....oL..n....i.......#w8%a?...h.Wt .. Cb..XY......<.- 0240: ...-..[.#.\..... V..........u0..q0..~..+.....y......n...j.h.w... 0280: .d.....\......2.F|....QHYFq.......s........H0F.!.....}..q.%.+>. 02c0: 8..?P.L.*......N..!....#......@6.ABE....,+.4k.T!.....u.H..k..G4. 0300: .j...0..R..V.,.....9..s....s........F0D. [4yd.....z..r...'.....L 0340: k.:.z..$.. '..$o.9Af..!"...a.n.a...2....qK..v....k?.."....\k.p.q 0380: l.Q..4..=0H.......s..).....G0E. ....+....$.......|&..1/b...1.... 03c0: .!......cM.....8..m..$.1.e..W..4.^.0'..+.....7....0.0...+....... 0400: 0...+.......0<..+.....7.../0-.%+.....7.........F...........]...i 0440: ...>..d..&0....+..........0..0m..+.....0..ahttp://www.microsoft. 0480: com/pkiops/certs/Microsoft%20Azure%20TLS%20Issuing%20CA%2002%20- 04c0: %20xsign.crt0-..+.....0..!http://oneocsp.microsoft.com/ocsp0...U 0500: ............BK.X.p.=......0...U...........0....U.....0.$eastasi 0540: a.api.cognitive.microsoft.com.$eastasia.dev.cognitive.microsoft. 0580: com..*.cognitiveservices.azure.com..*.openai.azure.com0...U..... 05c0: ..0.0d..U...]0[0Y.W.U.Shttp://www.microsoft.com/pkiops/crl/Micro 0600: soft%20Azure%20TLS%20Issuing%20CA%2002.crl0f..U. ._0]0Q..+.....7 0640: L.}..0A0?..+........3http://www.microsoft.com/pkiops/Docs/Reposi 0680: tory.htm0...g.....0...U.#..0.......!b&...y.aA.`.bg.0...U.%..0... 06c0: +.........+.......0...*.H.............I.....!Lu:.F"w....O.....'0 0700: [0....~.%t.H."...........j3.....&I!.+4....&......{..#......R.N' 0740: V...<.....=.].iB9ne.... ..C.$..........I=.....F.g....Xv.5.}>... 0780: 6....3.wC+V)...-.^..t. 3S......Y.h..7.z...z......v]y)2......#p`. 07c0: ......6.=....S.=..,....u.d.....|.f...MF.|<r9.-..jY..p..ioe.-2.(. 0800: .....3.`.Hx.....p..%.....C.%..<....2 1.|.Q.~."....7...|..=.....Z 0840: ...z..6z...H;ck?....{...U.>..vE...9~G...p....D...u|9....C..~.ooh 0880: j.6.....g=Y...?...:.(....m.G.:|.=`+.O.A...K.....C..i.......=...n 08c0: xP..:.w.r...._gK........<.+.$....\.......0...0...........j.|.... 0900: ......2.0...*.H........0a1.0...U....US1.0...U....DigiCert Inc1.0 0940: ...U....www.digicert.com1 0...U....DigiCert Global Root G20...20 0980: 0729123000Z..240627235959Z0Y1.0...U....US1.0...U....Microsoft Co 09c0: rporation1*0(..U...!Microsoft Azure TLS Issuing CA 020.."0...*.H 0a00: .............0.........b;R..N.....bd........-...#l.R.<.Z..Ph.... 0a40: .....)a2!.5....O.I..L.......F.(.....*.As.........Y.#....b."+.... 0a80: .?..q....k4..#(..$.K.e..].C.V...C).C&...I....P...U.M..8.+!.].... 0ac0: .8t..+/.9..y......!....h*......;x.y.$ XC..s~....f..1J...I,.O.'.. 0b00: ..K..........O...?......m.'.$V.4.%C...X]......%.#....p.....'...z 0b40: .n.?...tX.A.@...+....P9....5.JX...PQ.l..g....m...~....A..Af@.Wy. 0b80: ..W....7..u}._.b..-n.Jjqd..\L.9{S.l.W.$ ...1{....m.\./T...-O.... 0bc0: .o.l...Q....J..-Xa....U....K.:'&tfJ...S..*.."\.d.:..X.3^..Zp...i 0c00: ."B...PW8...c".`i..o..........0...0...U..........!b&...y.aA.`.b 0c40: g.0...U.#..0...N"T ....n..........90...U...........0...U.%..0... 0c80: +.........+.......0...U.......0.......0v..+........j0h0$..+..... 0cc0: 0...http://ocsp.digicert.com0@..+.....0..4http://cacerts.digicer 0d00: t.com/DigiCertGlobalRootG2.crt0{..U...t0r07.5.3.1http://crl3.dig 0d40: icert.com/DigiCertGlobalRootG2.crl07.5.3.1http://crl4.digicert.c 0d80: om/DigiCertGlobalRootG2.crl0...U. ..0.0...g.....0...g.....0...+. 0dc0: ....7.......0...*.H.............3....c.M..An..:.. S....G.e..G_7. 0e00: ~.JAZ.a..B.....&J..:O..O..~W/l..RAV.P.tA..,y.m~..q1...X.x.N..... 0e40: NC..Y.aF..<..<aG@.....E.."..Y=B.X."wV.AS9..R.(...N....R....t>K. 0e80: ....r.{..l...=g.9q..nw....'..^...l..v.?...?..=.n/A,;s .-..%.5zy. 0ec0: [..7)A.T...........'w.....hN..^. == Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12): <= Recv SSL data, 0000000365 bytes (0x0000016d) 0000: ...i...a./F.k...H..8...[h#..L..:.../....EZ.... ...Taj,elX....^$. 0040: ...?.J..Tv8(%.'.-."..........!.y3.S.u..........d2.W;.,Wv.....#.. 0080: ?..]s...x..Z...".T....#z.|.D.YFgg...\.,.(&8.E...Z...!.r)."..\..? 00c0: <N....qtD..!........>q..ckx.1...@q...pn.........~v..;L...@VY.=.5 0100: ...f....[.\......@..@.W.......N...X.r1c.~......c..I..|L...Tq,... 0140: I...8......h.....J....\_.I;.....tH].........X == Info: TLSv1.2 (IN), TLS handshake, Server finished (14): <= Recv SSL data, 0000000004 bytes (0x00000004) 0000: .... == Info: TLSv1.2 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....f == Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16): => Send SSL data, 0000000102 bytes (0x00000066) 0000: ...ba........./.|I%E...V.....8..FR..d..w.g.....=..Z............. 0040: 4..'..l0.(&...#....M~-9$..i..l.v'C...v == Info: TLSv1.2 (OUT), TLS header, Finished (20): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): => Send SSL data, 0000000001 bytes (0x00000001) 0000: . == Info: TLSv1.2 (OUT), TLS header, Certificate Status (22): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....( == Info: TLSv1.2 (OUT), TLS handshake, Finished (20): => Send SSL data, 0000000016 bytes (0x00000010) 0000: ....}........[4. == Info: TLSv1.2 (IN), TLS header, Finished (20): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ..... == Info: TLSv1.2 (IN), TLS header, Certificate Status (22): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ....( == Info: TLSv1.2 (IN), TLS handshake, Finished (20): <= Recv SSL data, 0000000016 bytes (0x00000010) 0000: .........@....|. == Info: SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 == Info: ALPN, server accepted to use http/1.1 == Info: Server certificate: == Info: subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; CN=eastasia.api.cognitive.microsoft.com == Info: start date: Jul 20 15:22:07 2023 GMT == Info: expire date: Jun 27 23:59:59 2024 GMT == Info: subjectAltName: host "eastasia.api.cognitive.microsoft.com" matched cert's "eastasia.api.cognitive.microsoft.com" == Info: issuer: C=US; O=Microsoft Corporation; CN=Microsoft Azure TLS Issuing CA 02 == Info: SSL certificate verify ok. == Info: TLSv1.2 (OUT), TLS header, Supplemental data (23): => Send SSL data, 0000000005 bytes (0x00000005) 0000: ....* => Send header, 0000000274 bytes (0x00000112) 0000: POST /sts/v1.0/issueToken HTTP/1.1 0024: Host: eastasia.api.cognitive.microsoft.com 0050: Accept: */* 005d: Transfer-Encoding: chunked 0079: Content-Length: 0 008c: Ocp-Apim-Subscription-Key: My-key 00c9: Content-Type: application/x-www-form-urlencoded 00fa: Expect: 100-continue 0110: == Info: TLSv1.2 (IN), TLS header, Supplemental data (23): <= Recv SSL data, 0000000005 bytes (0x00000005) 0000: ....h == Info: Mark bundle as not supporting multiuse <= Recv header, 0000000017 bytes (0x00000011) 0000: HTTP/1.1 200 OK <= Recv header, 0000000021 bytes (0x00000015) 0000: Content-Length: 777 <= Recv header, 0000000031 bytes (0x0000001f) 0000: Content-Type: application/jwt <= Recv header, 0000000034 bytes (0x00000022) 0000: x-envoy-upstream-service-time: 1 <= Recv header, 0000000055 bytes (0x00000037) 0000: apim-request-id: ef6c08b0-39fe-4650-86c1-4feced9572b5 <= Recv header, 0000000073 bytes (0x00000049) 0000: Strict-Transport-Security: max-age=31536000; includeSubDomains; 0040: preload <= Recv header, 0000000033 bytes (0x00000021) 0000: x-content-type-options: nosniff <= Recv header, 0000000024 bytes (0x00000018) 0000: x-ms-region: East Asia <= Recv header, 0000000037 bytes (0x00000025) 0000: Date: Mon, 21 Aug 2023 10:06:39 GMT <= Recv header, 0000000002 bytes (0x00000002) 0000: <= Recv data, 0000000777 bytes (0x00000309) 0000: eyJ....My...Token == Info: Connection #0 to host eastasia.api.cognitive.microsoft.com left intact eyJ....My...Token root@db4f56f11d6f:/# ``` CURL version ```bash $ curl -V curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.14 Release-Date: 2022-01-05 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd ``` Operating System Run in docker image Ubuntu 22.04, host on Ubuntu 20.04 ```bash $ uname -a Linux db4f56f11d6f 5.15.0-60-generic #66~20.04.1-Ubuntu SMP Wed Jan 25 09:41:30 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.2 LTS Release: 22.04 Codename: jammy ```
-- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html