OLD | NEW |
1 /* | 1 /* |
2 * SSL3 Protocol | 2 * SSL3 Protocol |
3 * | 3 * |
4 * ***** BEGIN LICENSE BLOCK ***** | 4 * ***** BEGIN LICENSE BLOCK ***** |
5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
6 * | 6 * |
7 * The contents of this file are subject to the Mozilla Public License Version | 7 * The contents of this file are subject to the Mozilla Public License Version |
8 * 1.1 (the "License"); you may not use this file except in compliance with | 8 * 1.1 (the "License"); you may not use this file except in compliance with |
9 * the License. You may obtain a copy of the License at | 9 * the License. You may obtain a copy of the License at |
10 * http://www.mozilla.org/MPL/ | 10 * http://www.mozilla.org/MPL/ |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 ssl3_ServerHandleNextProtoNegoXtn(sslSocket * ss, PRUint16 ex_type, SECItem *dat
a) | 562 ssl3_ServerHandleNextProtoNegoXtn(sslSocket * ss, PRUint16 ex_type, SECItem *dat
a) |
563 { | 563 { |
564 if (ss->firstHsDone || data->len != 0) { | 564 if (ss->firstHsDone || data->len != 0) { |
565 /* Clients MUST send an empty NPN extension, if any. */ | 565 /* Clients MUST send an empty NPN extension, if any. */ |
566 PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID); | 566 PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID); |
567 return SECFailure; | 567 return SECFailure; |
568 } | 568 } |
569 | 569 |
570 ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type; | 570 ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type; |
571 | 571 |
| 572 /* TODO: server side NPN support would require calling |
| 573 * ssl3_RegisterServerHelloExtensionSender here in order to echo the |
| 574 * extension back to the client. */ |
| 575 |
572 return SECSuccess; | 576 return SECSuccess; |
573 } | 577 } |
574 | 578 |
575 /* ssl3_ValidateNextProtoNego checks that the given block of data is valid: none | 579 /* ssl3_ValidateNextProtoNego checks that the given block of data is valid: none |
576 * of the lengths may be 0 and the sum of the lengths must equal the length of | 580 * of the lengths may be 0 and the sum of the lengths must equal the length of |
577 * the block. */ | 581 * the block. */ |
578 SECStatus | 582 SECStatus |
579 ssl3_ValidateNextProtoNego(const unsigned char* data, unsigned int length) | 583 ssl3_ValidateNextProtoNego(const unsigned char* data, unsigned int length) |
580 { | 584 { |
581 unsigned int offset = 0; | 585 unsigned int offset = 0; |
(...skipping 1283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1865 | 1869 |
1866 /* The echoed extension must be empty. */ | 1870 /* The echoed extension must be empty. */ |
1867 if (data->len != 0) | 1871 if (data->len != 0) |
1868 return SECFailure; | 1872 return SECFailure; |
1869 | 1873 |
1870 /* Keep track of negotiated extensions. */ | 1874 /* Keep track of negotiated extensions. */ |
1871 ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type; | 1875 ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type; |
1872 | 1876 |
1873 return SECSuccess; | 1877 return SECSuccess; |
1874 } | 1878 } |
OLD | NEW |