MCPcopy Create free account
hub / github.com/apache/mesos / TEST

Function TEST

3rdparty/libprocess/src/tests/jwt_tests.cpp:95–461  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93
94
95TEST(JWTTest, Parse)
96{
97 const string secret = "secret";
98
99 shared_ptr<RSA> privateKey = pem_to_rsa_private_key(PRIVATE_KEY).get();
100 CHECK_NOTNULL(privateKey.get());
101
102 shared_ptr<RSA> publicKey = pem_to_rsa_public_key(PUBLIC_KEY).get();
103 CHECK_NOTNULL(publicKey.get());
104
105 shared_ptr<RSA> wrongPublicKey =
106 pem_to_rsa_public_key(WRONG_PUBLIC_KEY).get();
107 CHECK_NOTNULL(wrongPublicKey.get());
108
109 auto create_hs256_token = [secret](string header, string payload) {
110 header = base64::encode_url_safe(header, false);
111 payload = base64::encode_url_safe(payload, false);
112
113 const string mac =
114 generate_hmac_sha256(strings::join(".", header, payload), secret).get();
115
116 const string signature = base64::encode_url_safe(mac, false);
117
118 return strings::join(".", header, payload, signature);
119 };
120
121 auto create_rs256_token = [privateKey](string header, string payload) {
122 header = base64::encode_url_safe(header, false);
123 payload = base64::encode_url_safe(payload, false);
124
125 const string rawSignature = sign_rsa_sha256(
126 strings::join(".", header, payload), privateKey).get();
127
128 const string signature = base64::encode_url_safe(rawSignature, false);
129
130 return strings::join(".", header, payload, signature);
131 };
132
133 // Invalid token header.
134 {
135 // HS256.
136 {
137 const string token = create_hs256_token(
138 "NOT A VALID HEADER",
139 "{\"exp\":9999999999,\"sub\":\"foo\"}");
140
141 const Try<JWT, JWTError> jwt = JWT::parse(token, secret);
142
143 EXPECT_ERROR(jwt);
144 }
145
146 // RS256.
147 {
148 const string token = create_rs256_token(
149 "NOT A VALID HEADER",
150 "{\"exp\":9999999999,\"sub\":\"foo\"}");
151
152 const Try<JWT, JWTError> jwt = JWT::parse(token, publicKey);

Callers

nothing calls this directly

Calls 10

pem_to_rsa_private_keyFunction · 0.85
pem_to_rsa_public_keyFunction · 0.85
encode_url_safeFunction · 0.85
generate_hmac_sha256Function · 0.85
sign_rsa_sha256Function · 0.85
joinFunction · 0.50
parseFunction · 0.50
stringifyClass · 0.50
createFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected