| OLD | NEW |
| 1 /* ***** BEGIN LICENSE BLOCK ***** | 1 /* ***** BEGIN LICENSE BLOCK ***** |
| 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| 3 * | 3 * |
| 4 * The contents of this file are subject to the Mozilla Public License Version | 4 * The contents of this file are subject to the Mozilla Public License Version |
| 5 * 1.1 (the "License"); you may not use this file except in compliance with | 5 * 1.1 (the "License"); you may not use this file except in compliance with |
| 6 * the License. You may obtain a copy of the License at | 6 * the License. You may obtain a copy of the License at |
| 7 * http://www.mozilla.org/MPL/ | 7 * http://www.mozilla.org/MPL/ |
| 8 * | 8 * |
| 9 * Software distributed under the License is distributed on an "AS IS" basis, | 9 * Software distributed under the License is distributed on an "AS IS" basis, |
| 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 if (!ss) { | 284 if (!ss) { |
| 285 SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook", | 285 SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook", |
| 286 SSL_GETPID(), s)); | 286 SSL_GETPID(), s)); |
| 287 return SECFailure; | 287 return SECFailure; |
| 288 } | 288 } |
| 289 | 289 |
| 290 ss->pkcs11PinArg = arg; | 290 ss->pkcs11PinArg = arg; |
| 291 return SECSuccess; | 291 return SECSuccess; |
| 292 } | 292 } |
| 293 | 293 |
| 294 /* register callback function to provide the user password */ |
| 295 SECStatus |
| 296 SSL_UserPasswdHook(PRFileDesc *s, SSLUserPasswdCB func, void *arg) |
| 297 { |
| 298 sslSocket *ss; |
| 299 |
| 300 ss = ssl_FindSocket(s); |
| 301 if (!ss) { |
| 302 SSL_DBG(("%d: SSL[%d]: bad socket in UserPasswdHook", |
| 303 SSL_GETPID(), s)); |
| 304 return SECFailure; |
| 305 } |
| 306 |
| 307 ss->getUserPasswd = func; |
| 308 ss->getUserPasswdArg = arg; |
| 309 return SECSuccess; |
| 310 } |
| 311 |
| 312 /* used by client to provide user credentials non-interactively */ |
| 313 SECStatus |
| 314 SSL_SetUserLogin(PRFileDesc *s, const char *user, const char *passwd) |
| 315 { |
| 316 sslSocket *ss = NULL; |
| 317 int len; |
| 318 |
| 319 ss = ssl_FindSocket(s); |
| 320 if (!ss) { |
| 321 SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook", |
| 322 SSL_GETPID(), s)); |
| 323 return SECFailure; |
| 324 } |
| 325 |
| 326 if (user) { |
| 327 len = PORT_Strlen(user); |
| 328 if (len > MAX_SRP_USERNAME_LENGTH) |
| 329 len = MAX_SRP_USERNAME_LENGTH; |
| 330 ss->sec.userName = SECITEM_AllocItem(NULL, NULL, len); |
| 331 if (!ss->sec.userName) { |
| 332 PORT_SetError(SEC_ERROR_NO_MEMORY); |
| 333 return SECFailure; |
| 334 } |
| 335 PORT_Memcpy(ss->sec.userName->data, user, ss->sec.userName->len); |
| 336 } |
| 337 |
| 338 if (passwd) { |
| 339 len = PORT_Strlen(passwd); |
| 340 ss->sec.userPasswd = SECITEM_AllocItem(NULL, NULL, len); |
| 341 if (!ss->sec.userPasswd) { |
| 342 PORT_SetError(SEC_ERROR_NO_MEMORY); |
| 343 return SECFailure; |
| 344 } |
| 345 PORT_Memcpy(ss->sec.userPasswd->data, passwd, ss->sec.userPasswd->len); |
| 346 } |
| 347 |
| 348 return SECSuccess; |
| 349 } |
| 350 |
| 351 /* register callback function to provide SRP user authentication params */ |
| 352 SECStatus |
| 353 SSL_GetSRPParamsHook(PRFileDesc *s, SSLGetSRPParamsCB func, void *arg) |
| 354 { |
| 355 sslSocket *ss; |
| 356 |
| 357 ss = ssl_FindSocket(s); |
| 358 if (!ss) { |
| 359 SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook", |
| 360 SSL_GETPID(), s)); |
| 361 return SECFailure; |
| 362 } |
| 363 |
| 364 ss->getSRPParams = func; |
| 365 ss->getSRPParamsArg = arg; |
| 366 return SECSuccess; |
| 367 } |
| 294 | 368 |
| 295 /* This is the "default" authCert callback function. It is called when a | 369 /* This is the "default" authCert callback function. It is called when a |
| 296 * certificate message is received from the peer and the local application | 370 * certificate message is received from the peer and the local application |
| 297 * has not registered an authCert callback function. | 371 * has not registered an authCert callback function. |
| 298 */ | 372 */ |
| 299 SECStatus | 373 SECStatus |
| 300 SSL_AuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig, PRBool isServer) | 374 SSL_AuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig, PRBool isServer) |
| 301 { | 375 { |
| 302 SECStatus rv; | 376 SECStatus rv; |
| 303 CERTCertDBHandle * handle; | 377 CERTCertDBHandle * handle; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 329 hostname = ss->url; | 403 hostname = ss->url; |
| 330 if (hostname && hostname[0]) | 404 if (hostname && hostname[0]) |
| 331 rv = CERT_VerifyCertName(ss->sec.peerCert, hostname); | 405 rv = CERT_VerifyCertName(ss->sec.peerCert, hostname); |
| 332 else | 406 else |
| 333 rv = SECFailure; | 407 rv = SECFailure; |
| 334 if (rv != SECSuccess) | 408 if (rv != SECSuccess) |
| 335 PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN); | 409 PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN); |
| 336 | 410 |
| 337 return rv; | 411 return rv; |
| 338 } | 412 } |
| OLD | NEW |