Changeset 372 for asp3_tinet_ecnl_arm/trunk/wolfssl-3.12.2/src/keys.c
- Timestamp:
- Feb 7, 2019, 8:36:33 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_arm/trunk/wolfssl-3.12.2/src/keys.c
r352 r372 245 245 switch (ssl->options.cipherSuite) { 246 246 247 #if def HAVE_ECC247 #if defined(HAVE_ECC) || defined(HAVE_CURVE25519) 248 248 249 249 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 … … 260 260 ssl->specs.iv_size = AES_IV_SIZE; 261 261 ssl->specs.block_size = AES_BLOCK_SIZE; 262 262 263 break; 263 264 #endif 265 266 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 267 case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 : 268 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 269 ssl->specs.cipher_type = block; 270 ssl->specs.mac_algorithm = sha384_mac; 271 ssl->specs.kea = ecc_diffie_hellman_kea; 272 ssl->specs.sig_algo = rsa_sa_algo; 273 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 274 ssl->specs.pad_size = PAD_SHA; 275 ssl->specs.static_ecdh = 0; 276 ssl->specs.key_size = AES_256_KEY_SIZE; 277 ssl->specs.iv_size = AES_IV_SIZE; 278 ssl->specs.block_size = AES_BLOCK_SIZE; 279 280 break; 281 #endif 282 283 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 284 case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA : 285 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 286 ssl->specs.cipher_type = block; 287 ssl->specs.mac_algorithm = sha_mac; 288 ssl->specs.kea = ecc_diffie_hellman_kea; 289 ssl->specs.sig_algo = rsa_sa_algo; 290 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 291 ssl->specs.pad_size = PAD_SHA; 292 ssl->specs.static_ecdh = 0; 293 ssl->specs.key_size = AES_128_KEY_SIZE; 294 ssl->specs.block_size = AES_BLOCK_SIZE; 295 ssl->specs.iv_size = AES_IV_SIZE; 296 297 break; 298 #endif 299 300 #ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 301 case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA : 302 ssl->specs.bulk_cipher_algorithm = wolfssl_triple_des; 303 ssl->specs.cipher_type = block; 304 ssl->specs.mac_algorithm = sha_mac; 305 ssl->specs.kea = ecc_diffie_hellman_kea; 306 ssl->specs.sig_algo = rsa_sa_algo; 307 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 308 ssl->specs.pad_size = PAD_SHA; 309 ssl->specs.static_ecdh = 0; 310 ssl->specs.key_size = DES3_KEY_SIZE; 311 ssl->specs.block_size = DES_BLOCK_SIZE; 312 ssl->specs.iv_size = DES_IV_SIZE; 313 314 break; 315 #endif 316 317 #ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA 318 case TLS_ECDHE_RSA_WITH_RC4_128_SHA : 319 ssl->specs.bulk_cipher_algorithm = wolfssl_rc4; 320 ssl->specs.cipher_type = stream; 321 ssl->specs.mac_algorithm = sha_mac; 322 ssl->specs.kea = ecc_diffie_hellman_kea; 323 ssl->specs.sig_algo = rsa_sa_algo; 324 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 325 ssl->specs.pad_size = PAD_SHA; 326 ssl->specs.static_ecdh = 0; 327 ssl->specs.key_size = RC4_KEY_SIZE; 328 ssl->specs.iv_size = 0; 329 ssl->specs.block_size = 0; 330 331 break; 332 #endif 333 334 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 335 case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA : 336 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 337 ssl->specs.cipher_type = block; 338 ssl->specs.mac_algorithm = sha_mac; 339 ssl->specs.kea = ecc_diffie_hellman_kea; 340 ssl->specs.sig_algo = rsa_sa_algo; 341 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 342 ssl->specs.pad_size = PAD_SHA; 343 ssl->specs.static_ecdh = 0; 344 ssl->specs.key_size = AES_256_KEY_SIZE; 345 ssl->specs.block_size = AES_BLOCK_SIZE; 346 ssl->specs.iv_size = AES_IV_SIZE; 347 348 break; 349 #endif 350 351 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 352 case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 : 353 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; 354 ssl->specs.cipher_type = aead; 355 ssl->specs.mac_algorithm = sha256_mac; 356 ssl->specs.kea = ecc_diffie_hellman_kea; 357 ssl->specs.sig_algo = rsa_sa_algo; 358 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 359 ssl->specs.pad_size = PAD_SHA; 360 ssl->specs.static_ecdh = 0; 361 ssl->specs.key_size = AES_128_KEY_SIZE; 362 ssl->specs.block_size = AES_BLOCK_SIZE; 363 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 364 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; 365 366 break; 367 #endif 368 369 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 370 case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 : 371 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; 372 ssl->specs.cipher_type = aead; 373 ssl->specs.mac_algorithm = sha384_mac; 374 ssl->specs.kea = ecc_diffie_hellman_kea; 375 ssl->specs.sig_algo = rsa_sa_algo; 376 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 377 ssl->specs.pad_size = PAD_SHA; 378 ssl->specs.static_ecdh = 0; 379 ssl->specs.key_size = AES_256_KEY_SIZE; 380 ssl->specs.block_size = AES_BLOCK_SIZE; 381 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 382 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; 383 384 break; 385 #endif 386 387 #ifdef BUILD_TLS_ECDHE_PSK_WITH_NULL_SHA256 388 case TLS_ECDHE_PSK_WITH_NULL_SHA256 : 389 ssl->specs.bulk_cipher_algorithm = wolfssl_cipher_null; 390 ssl->specs.cipher_type = stream; 391 ssl->specs.mac_algorithm = sha256_mac; 392 ssl->specs.kea = ecdhe_psk_kea; 393 ssl->specs.sig_algo = anonymous_sa_algo; 394 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 395 ssl->specs.pad_size = PAD_SHA; 396 ssl->specs.static_ecdh = 0; 397 ssl->specs.key_size = 0; 398 ssl->specs.block_size = 0; 399 ssl->specs.iv_size = 0; 400 401 ssl->options.usingPSK_cipher = 1; 402 break; 403 #endif 404 405 #ifdef BUILD_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 406 case TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 : 407 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 408 ssl->specs.cipher_type = block; 409 ssl->specs.mac_algorithm = sha256_mac; 410 ssl->specs.kea = ecdhe_psk_kea; 411 ssl->specs.sig_algo = anonymous_sa_algo; 412 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 413 ssl->specs.pad_size = PAD_SHA; 414 ssl->specs.static_ecdh = 0; 415 ssl->specs.key_size = AES_128_KEY_SIZE; 416 ssl->specs.block_size = AES_BLOCK_SIZE; 417 ssl->specs.iv_size = AES_IV_SIZE; 418 419 ssl->options.usingPSK_cipher = 1; 420 break; 421 #endif 422 423 #endif /* HAVE_ECC || HAVE_CURVE25519 */ 424 425 #if defined(HAVE_ECC) || (defined(HAVE_CURVE25519) && defined(HAVE_ED25519)) 264 426 265 427 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 … … 276 438 ssl->specs.iv_size = AES_IV_SIZE; 277 439 ssl->specs.block_size = AES_BLOCK_SIZE; 278 break; 279 #endif 440 441 break; 442 #endif 443 444 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 445 case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 : 446 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 447 ssl->specs.cipher_type = block; 448 ssl->specs.mac_algorithm = sha384_mac; 449 ssl->specs.kea = ecc_diffie_hellman_kea; 450 ssl->specs.sig_algo = ecc_dsa_sa_algo; 451 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 452 ssl->specs.pad_size = PAD_SHA; 453 ssl->specs.static_ecdh = 0; 454 ssl->specs.key_size = AES_256_KEY_SIZE; 455 ssl->specs.iv_size = AES_IV_SIZE; 456 ssl->specs.block_size = AES_BLOCK_SIZE; 457 458 break; 459 #endif 460 461 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 462 case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA : 463 ssl->specs.bulk_cipher_algorithm = wolfssl_triple_des; 464 ssl->specs.cipher_type = block; 465 ssl->specs.mac_algorithm = sha_mac; 466 ssl->specs.kea = ecc_diffie_hellman_kea; 467 ssl->specs.sig_algo = ecc_dsa_sa_algo; 468 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 469 ssl->specs.pad_size = PAD_SHA; 470 ssl->specs.static_ecdh = 0; 471 ssl->specs.key_size = DES3_KEY_SIZE; 472 ssl->specs.block_size = DES_BLOCK_SIZE; 473 ssl->specs.iv_size = DES_IV_SIZE; 474 475 break; 476 #endif 477 478 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 479 case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA : 480 ssl->specs.bulk_cipher_algorithm = wolfssl_rc4; 481 ssl->specs.cipher_type = stream; 482 ssl->specs.mac_algorithm = sha_mac; 483 ssl->specs.kea = ecc_diffie_hellman_kea; 484 ssl->specs.sig_algo = ecc_dsa_sa_algo; 485 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 486 ssl->specs.pad_size = PAD_SHA; 487 ssl->specs.static_ecdh = 0; 488 ssl->specs.key_size = RC4_KEY_SIZE; 489 ssl->specs.iv_size = 0; 490 ssl->specs.block_size = 0; 491 492 break; 493 #endif 494 495 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 496 case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA : 497 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 498 ssl->specs.cipher_type = block; 499 ssl->specs.mac_algorithm = sha_mac; 500 ssl->specs.kea = ecc_diffie_hellman_kea; 501 ssl->specs.sig_algo = ecc_dsa_sa_algo; 502 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 503 ssl->specs.pad_size = PAD_SHA; 504 ssl->specs.static_ecdh = 0; 505 ssl->specs.key_size = AES_128_KEY_SIZE; 506 ssl->specs.block_size = AES_BLOCK_SIZE; 507 ssl->specs.iv_size = AES_IV_SIZE; 508 509 break; 510 #endif 511 512 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 513 case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA : 514 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 515 ssl->specs.cipher_type = block; 516 ssl->specs.mac_algorithm = sha_mac; 517 ssl->specs.kea = ecc_diffie_hellman_kea; 518 ssl->specs.sig_algo = ecc_dsa_sa_algo; 519 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 520 ssl->specs.pad_size = PAD_SHA; 521 ssl->specs.static_ecdh = 0; 522 ssl->specs.key_size = AES_256_KEY_SIZE; 523 ssl->specs.block_size = AES_BLOCK_SIZE; 524 ssl->specs.iv_size = AES_IV_SIZE; 525 526 break; 527 #endif 528 529 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 530 case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 : 531 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; 532 ssl->specs.cipher_type = aead; 533 ssl->specs.mac_algorithm = sha256_mac; 534 ssl->specs.kea = ecc_diffie_hellman_kea; 535 ssl->specs.sig_algo = ecc_dsa_sa_algo; 536 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 537 ssl->specs.pad_size = PAD_SHA; 538 ssl->specs.static_ecdh = 0; 539 ssl->specs.key_size = AES_128_KEY_SIZE; 540 ssl->specs.block_size = AES_BLOCK_SIZE; 541 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 542 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; 543 544 break; 545 #endif 546 547 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 548 case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 : 549 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; 550 ssl->specs.cipher_type = aead; 551 ssl->specs.mac_algorithm = sha384_mac; 552 ssl->specs.kea = ecc_diffie_hellman_kea; 553 ssl->specs.sig_algo = ecc_dsa_sa_algo; 554 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 555 ssl->specs.pad_size = PAD_SHA; 556 ssl->specs.static_ecdh = 0; 557 ssl->specs.key_size = AES_256_KEY_SIZE; 558 ssl->specs.block_size = AES_BLOCK_SIZE; 559 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 560 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; 561 562 break; 563 #endif 564 565 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CCM 566 case TLS_ECDHE_ECDSA_WITH_AES_128_CCM : 567 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm; 568 ssl->specs.cipher_type = aead; 569 ssl->specs.mac_algorithm = sha256_mac; 570 ssl->specs.kea = ecc_diffie_hellman_kea; 571 ssl->specs.sig_algo = ecc_dsa_sa_algo; 572 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 573 ssl->specs.pad_size = PAD_SHA; 574 ssl->specs.static_ecdh = 0; 575 ssl->specs.key_size = AES_128_KEY_SIZE; 576 ssl->specs.block_size = AES_BLOCK_SIZE; 577 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 578 ssl->specs.aead_mac_size = AES_CCM_16_AUTH_SZ; 579 580 break; 581 #endif 582 583 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 584 case TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 : 585 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm; 586 ssl->specs.cipher_type = aead; 587 ssl->specs.mac_algorithm = sha256_mac; 588 ssl->specs.kea = ecc_diffie_hellman_kea; 589 ssl->specs.sig_algo = ecc_dsa_sa_algo; 590 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 591 ssl->specs.pad_size = PAD_SHA; 592 ssl->specs.static_ecdh = 0; 593 ssl->specs.key_size = AES_128_KEY_SIZE; 594 ssl->specs.block_size = AES_BLOCK_SIZE; 595 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 596 ssl->specs.aead_mac_size = AES_CCM_8_AUTH_SZ; 597 598 break; 599 #endif 600 601 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 602 case TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 : 603 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm; 604 ssl->specs.cipher_type = aead; 605 ssl->specs.mac_algorithm = sha256_mac; 606 ssl->specs.kea = ecc_diffie_hellman_kea; 607 ssl->specs.sig_algo = ecc_dsa_sa_algo; 608 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; 609 ssl->specs.pad_size = PAD_SHA; 610 ssl->specs.static_ecdh = 0; 611 ssl->specs.key_size = AES_256_KEY_SIZE; 612 ssl->specs.block_size = AES_BLOCK_SIZE; 613 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 614 ssl->specs.aead_mac_size = AES_CCM_8_AUTH_SZ; 615 616 break; 617 #endif 618 619 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_NULL_SHA 620 case TLS_ECDHE_ECDSA_WITH_NULL_SHA : 621 ssl->specs.bulk_cipher_algorithm = wolfssl_cipher_null; 622 ssl->specs.cipher_type = stream; 623 ssl->specs.mac_algorithm = sha_mac; 624 ssl->specs.kea = ecc_diffie_hellman_kea; 625 ssl->specs.sig_algo = ecc_dsa_sa_algo; 626 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE; 627 ssl->specs.pad_size = PAD_SHA; 628 ssl->specs.static_ecdh = 0; 629 ssl->specs.key_size = 0; 630 ssl->specs.block_size = 0; 631 ssl->specs.iv_size = 0; 632 633 break; 634 #endif 635 636 #endif /* HAVE_ECC || (HAVE_CURVE25519 && HAVE_ED25519) */ 637 638 #if defined(HAVE_ECC) 280 639 281 640 #ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 … … 292 651 ssl->specs.iv_size = AES_IV_SIZE; 293 652 ssl->specs.block_size = AES_BLOCK_SIZE; 294 break; 653 654 break; 295 655 #endif 296 656 … … 308 668 ssl->specs.iv_size = AES_IV_SIZE; 309 669 ssl->specs.block_size = AES_BLOCK_SIZE; 310 break; 311 #endif 312 313 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 314 case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 : 315 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 316 ssl->specs.cipher_type = block; 317 ssl->specs.mac_algorithm = sha384_mac; 318 ssl->specs.kea = ecc_diffie_hellman_kea; 319 ssl->specs.sig_algo = rsa_sa_algo; 320 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 321 ssl->specs.pad_size = PAD_SHA; 322 ssl->specs.static_ecdh = 0; 323 ssl->specs.key_size = AES_256_KEY_SIZE; 324 ssl->specs.iv_size = AES_IV_SIZE; 325 ssl->specs.block_size = AES_BLOCK_SIZE; 326 break; 327 #endif 328 329 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 330 case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 : 331 ssl->specs.bulk_cipher_algorithm = wolfssl_aes; 332 ssl->specs.cipher_type = block; 333 ssl->specs.mac_algorithm = sha384_mac; 334 ssl->specs.kea = ecc_diffie_hellman_kea; 335 ssl->specs.sig_algo = ecc_dsa_sa_algo; 336 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 337 ssl->specs.pad_size = PAD_SHA; 338 ssl->specs.static_ecdh = 0; 339 ssl->specs.key_size = AES_256_KEY_SIZE; 340 ssl->specs.iv_size = AES_IV_SIZE; 341 ssl->specs.block_size = AES_BLOCK_SIZE; 342 break; 670 671 break; 343 672 #endif 344 673 … … 356 685 ssl->specs.iv_size = AES_IV_SIZE; 357 686 ssl->specs.block_size = AES_BLOCK_SIZE; 358 break; 687 688 break; 359 689 #endif 360 690 … … 372 702 ssl->specs.iv_size = AES_IV_SIZE; 373 703 ssl->specs.block_size = AES_BLOCK_SIZE; 374 break;375 #endif376 377 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA378 case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA :379 ssl->specs.bulk_cipher_algorithm = wolfssl_aes;380 ssl->specs.cipher_type = block;381 ssl->specs.mac_algorithm = sha_mac;382 ssl->specs.kea = ecc_diffie_hellman_kea;383 ssl->specs.sig_algo = rsa_sa_algo;384 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;385 ssl->specs.pad_size = PAD_SHA;386 ssl->specs.static_ecdh = 0;387 ssl->specs.key_size = AES_128_KEY_SIZE;388 ssl->specs.block_size = AES_BLOCK_SIZE;389 ssl->specs.iv_size = AES_IV_SIZE;390 704 391 705 break; … … 405 719 ssl->specs.block_size = AES_BLOCK_SIZE; 406 720 ssl->specs.iv_size = AES_IV_SIZE; 407 408 break;409 #endif410 411 #ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA412 case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA :413 ssl->specs.bulk_cipher_algorithm = wolfssl_triple_des;414 ssl->specs.cipher_type = block;415 ssl->specs.mac_algorithm = sha_mac;416 ssl->specs.kea = ecc_diffie_hellman_kea;417 ssl->specs.sig_algo = rsa_sa_algo;418 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;419 ssl->specs.pad_size = PAD_SHA;420 ssl->specs.static_ecdh = 0;421 ssl->specs.key_size = DES3_KEY_SIZE;422 ssl->specs.block_size = DES_BLOCK_SIZE;423 ssl->specs.iv_size = DES_IV_SIZE;424 721 425 722 break; … … 443 740 #endif 444 741 445 #ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA446 case TLS_ECDHE_RSA_WITH_RC4_128_SHA :447 ssl->specs.bulk_cipher_algorithm = wolfssl_rc4;448 ssl->specs.cipher_type = stream;449 ssl->specs.mac_algorithm = sha_mac;450 ssl->specs.kea = ecc_diffie_hellman_kea;451 ssl->specs.sig_algo = rsa_sa_algo;452 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;453 ssl->specs.pad_size = PAD_SHA;454 ssl->specs.static_ecdh = 0;455 ssl->specs.key_size = RC4_KEY_SIZE;456 ssl->specs.iv_size = 0;457 ssl->specs.block_size = 0;458 459 break;460 #endif461 462 742 #ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA 463 743 case TLS_ECDH_RSA_WITH_RC4_128_SHA : … … 477 757 #endif 478 758 479 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA480 case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA :481 ssl->specs.bulk_cipher_algorithm = wolfssl_triple_des;482 ssl->specs.cipher_type = block;483 ssl->specs.mac_algorithm = sha_mac;484 ssl->specs.kea = ecc_diffie_hellman_kea;485 ssl->specs.sig_algo = ecc_dsa_sa_algo;486 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;487 ssl->specs.pad_size = PAD_SHA;488 ssl->specs.static_ecdh = 0;489 ssl->specs.key_size = DES3_KEY_SIZE;490 ssl->specs.block_size = DES_BLOCK_SIZE;491 ssl->specs.iv_size = DES_IV_SIZE;492 493 break;494 #endif495 496 759 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 497 760 case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA : … … 511 774 #endif 512 775 513 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA514 case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA :515 ssl->specs.bulk_cipher_algorithm = wolfssl_rc4;516 ssl->specs.cipher_type = stream;517 ssl->specs.mac_algorithm = sha_mac;518 ssl->specs.kea = ecc_diffie_hellman_kea;519 ssl->specs.sig_algo = ecc_dsa_sa_algo;520 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;521 ssl->specs.pad_size = PAD_SHA;522 ssl->specs.static_ecdh = 0;523 ssl->specs.key_size = RC4_KEY_SIZE;524 ssl->specs.iv_size = 0;525 ssl->specs.block_size = 0;526 527 break;528 #endif529 530 776 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 531 777 case TLS_ECDH_ECDSA_WITH_RC4_128_SHA : … … 545 791 #endif 546 792 547 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA548 case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA :549 ssl->specs.bulk_cipher_algorithm = wolfssl_aes;550 ssl->specs.cipher_type = block;551 ssl->specs.mac_algorithm = sha_mac;552 ssl->specs.kea = ecc_diffie_hellman_kea;553 ssl->specs.sig_algo = rsa_sa_algo;554 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;555 ssl->specs.pad_size = PAD_SHA;556 ssl->specs.static_ecdh = 0;557 ssl->specs.key_size = AES_256_KEY_SIZE;558 ssl->specs.block_size = AES_BLOCK_SIZE;559 ssl->specs.iv_size = AES_IV_SIZE;560 561 break;562 #endif563 564 793 #ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 565 794 case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA : … … 579 808 #endif 580 809 581 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA582 case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA :583 ssl->specs.bulk_cipher_algorithm = wolfssl_aes;584 ssl->specs.cipher_type = block;585 ssl->specs.mac_algorithm = sha_mac;586 ssl->specs.kea = ecc_diffie_hellman_kea;587 ssl->specs.sig_algo = ecc_dsa_sa_algo;588 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;589 ssl->specs.pad_size = PAD_SHA;590 ssl->specs.static_ecdh = 0;591 ssl->specs.key_size = AES_128_KEY_SIZE;592 ssl->specs.block_size = AES_BLOCK_SIZE;593 ssl->specs.iv_size = AES_IV_SIZE;594 595 break;596 #endif597 598 810 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 599 811 case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA : … … 613 825 #endif 614 826 615 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA616 case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA :617 ssl->specs.bulk_cipher_algorithm = wolfssl_aes;618 ssl->specs.cipher_type = block;619 ssl->specs.mac_algorithm = sha_mac;620 ssl->specs.kea = ecc_diffie_hellman_kea;621 ssl->specs.sig_algo = ecc_dsa_sa_algo;622 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;623 ssl->specs.pad_size = PAD_SHA;624 ssl->specs.static_ecdh = 0;625 ssl->specs.key_size = AES_256_KEY_SIZE;626 ssl->specs.block_size = AES_BLOCK_SIZE;627 ssl->specs.iv_size = AES_IV_SIZE;628 629 break;630 #endif631 632 827 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 633 828 case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA : … … 647 842 #endif 648 843 649 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256650 case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 :651 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm;652 ssl->specs.cipher_type = aead;653 ssl->specs.mac_algorithm = sha256_mac;654 ssl->specs.kea = ecc_diffie_hellman_kea;655 ssl->specs.sig_algo = rsa_sa_algo;656 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;657 ssl->specs.pad_size = PAD_SHA;658 ssl->specs.static_ecdh = 0;659 ssl->specs.key_size = AES_128_KEY_SIZE;660 ssl->specs.block_size = AES_BLOCK_SIZE;661 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;662 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ;663 664 break;665 #endif666 667 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384668 case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 :669 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm;670 ssl->specs.cipher_type = aead;671 ssl->specs.mac_algorithm = sha384_mac;672 ssl->specs.kea = ecc_diffie_hellman_kea;673 ssl->specs.sig_algo = rsa_sa_algo;674 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE;675 ssl->specs.pad_size = PAD_SHA;676 ssl->specs.static_ecdh = 0;677 ssl->specs.key_size = AES_256_KEY_SIZE;678 ssl->specs.block_size = AES_BLOCK_SIZE;679 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;680 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ;681 682 break;683 #endif684 685 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256686 case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 :687 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm;688 ssl->specs.cipher_type = aead;689 ssl->specs.mac_algorithm = sha256_mac;690 ssl->specs.kea = ecc_diffie_hellman_kea;691 ssl->specs.sig_algo = ecc_dsa_sa_algo;692 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;693 ssl->specs.pad_size = PAD_SHA;694 ssl->specs.static_ecdh = 0;695 ssl->specs.key_size = AES_128_KEY_SIZE;696 ssl->specs.block_size = AES_BLOCK_SIZE;697 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;698 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ;699 700 break;701 #endif702 703 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384704 case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 :705 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm;706 ssl->specs.cipher_type = aead;707 ssl->specs.mac_algorithm = sha384_mac;708 ssl->specs.kea = ecc_diffie_hellman_kea;709 ssl->specs.sig_algo = ecc_dsa_sa_algo;710 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE;711 ssl->specs.pad_size = PAD_SHA;712 ssl->specs.static_ecdh = 0;713 ssl->specs.key_size = AES_256_KEY_SIZE;714 ssl->specs.block_size = AES_BLOCK_SIZE;715 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;716 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ;717 718 break;719 #endif720 721 844 #ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 722 845 case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 : … … 791 914 #endif 792 915 793 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CCM794 case TLS_ECDHE_ECDSA_WITH_AES_128_CCM :795 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm;796 ssl->specs.cipher_type = aead;797 ssl->specs.mac_algorithm = sha256_mac;798 ssl->specs.kea = ecc_diffie_hellman_kea;799 ssl->specs.sig_algo = ecc_dsa_sa_algo;800 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;801 ssl->specs.pad_size = PAD_SHA;802 ssl->specs.static_ecdh = 0;803 ssl->specs.key_size = AES_128_KEY_SIZE;804 ssl->specs.block_size = AES_BLOCK_SIZE;805 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;806 ssl->specs.aead_mac_size = AES_CCM_16_AUTH_SZ;807 808 break;809 #endif810 811 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8812 case TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 :813 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm;814 ssl->specs.cipher_type = aead;815 ssl->specs.mac_algorithm = sha256_mac;816 ssl->specs.kea = ecc_diffie_hellman_kea;817 ssl->specs.sig_algo = ecc_dsa_sa_algo;818 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;819 ssl->specs.pad_size = PAD_SHA;820 ssl->specs.static_ecdh = 0;821 ssl->specs.key_size = AES_128_KEY_SIZE;822 ssl->specs.block_size = AES_BLOCK_SIZE;823 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;824 ssl->specs.aead_mac_size = AES_CCM_8_AUTH_SZ;825 826 break;827 #endif828 829 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8830 case TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 :831 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_ccm;832 ssl->specs.cipher_type = aead;833 ssl->specs.mac_algorithm = sha256_mac;834 ssl->specs.kea = ecc_diffie_hellman_kea;835 ssl->specs.sig_algo = ecc_dsa_sa_algo;836 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;837 ssl->specs.pad_size = PAD_SHA;838 ssl->specs.static_ecdh = 0;839 ssl->specs.key_size = AES_256_KEY_SIZE;840 ssl->specs.block_size = AES_BLOCK_SIZE;841 ssl->specs.iv_size = AESGCM_IMP_IV_SZ;842 ssl->specs.aead_mac_size = AES_CCM_8_AUTH_SZ;843 844 break;845 #endif846 847 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_NULL_SHA848 case TLS_ECDHE_ECDSA_WITH_NULL_SHA :849 ssl->specs.bulk_cipher_algorithm = wolfssl_cipher_null;850 ssl->specs.cipher_type = stream;851 ssl->specs.mac_algorithm = sha_mac;852 ssl->specs.kea = ecc_diffie_hellman_kea;853 ssl->specs.sig_algo = ecc_dsa_sa_algo;854 ssl->specs.hash_size = WC_SHA_DIGEST_SIZE;855 ssl->specs.pad_size = PAD_SHA;856 ssl->specs.static_ecdh = 0;857 ssl->specs.key_size = 0;858 ssl->specs.block_size = 0;859 ssl->specs.iv_size = 0;860 861 break;862 #endif863 864 #ifdef BUILD_TLS_ECDHE_PSK_WITH_NULL_SHA256865 case TLS_ECDHE_PSK_WITH_NULL_SHA256 :866 ssl->specs.bulk_cipher_algorithm = wolfssl_cipher_null;867 ssl->specs.cipher_type = stream;868 ssl->specs.mac_algorithm = sha256_mac;869 ssl->specs.kea = ecdhe_psk_kea;870 ssl->specs.sig_algo = anonymous_sa_algo;871 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;872 ssl->specs.pad_size = PAD_SHA;873 ssl->specs.static_ecdh = 0;874 ssl->specs.key_size = 0;875 ssl->specs.block_size = 0;876 ssl->specs.iv_size = 0;877 878 ssl->options.usingPSK_cipher = 1;879 break;880 #endif881 882 #ifdef BUILD_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256883 case TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 :884 ssl->specs.bulk_cipher_algorithm = wolfssl_aes;885 ssl->specs.cipher_type = block;886 ssl->specs.mac_algorithm = sha256_mac;887 ssl->specs.kea = ecdhe_psk_kea;888 ssl->specs.sig_algo = anonymous_sa_algo;889 ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;890 ssl->specs.pad_size = PAD_SHA;891 ssl->specs.static_ecdh = 0;892 ssl->specs.key_size = AES_128_KEY_SIZE;893 ssl->specs.block_size = AES_BLOCK_SIZE;894 ssl->specs.iv_size = AES_IV_SIZE;895 896 ssl->options.usingPSK_cipher = 1;897 break;898 #endif899 916 #endif /* HAVE_ECC */ 900 917 … … 1418 1435 #endif 1419 1436 1437 #ifdef BUILD_TLS_DH_anon_WITH_AES_256_GCM_SHA384 1438 case TLS_DH_anon_WITH_AES_256_GCM_SHA384: 1439 ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; 1440 ssl->specs.cipher_type = aead; 1441 ssl->specs.mac_algorithm = sha384_mac; 1442 ssl->specs.kea = diffie_hellman_kea; 1443 ssl->specs.sig_algo = anonymous_sa_algo; 1444 ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE; 1445 ssl->specs.pad_size = PAD_SHA; 1446 ssl->specs.static_ecdh = 0; 1447 ssl->specs.key_size = AES_256_KEY_SIZE; 1448 ssl->specs.block_size = AES_BLOCK_SIZE; 1449 ssl->specs.iv_size = AESGCM_IMP_IV_SZ; 1450 ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; 1451 1452 ssl->options.usingAnon_cipher = 1; 1453 break; 1454 #endif 1455 1420 1456 #ifdef BUILD_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 1421 1457 case TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 : … … 2107 2143 #ifndef NO_TLS 2108 2144 ssl->options.tls = 1; 2145 #if !defined(WOLFSSL_NO_TLS12) && !defined(WOLFSSL_AEAD_ONLY) 2109 2146 ssl->hmac = TLS_hmac; 2147 #endif 2110 2148 if (ssl->version.minor >= 2) { 2111 2149 ssl->options.tls1_1 = 1; … … 2116 2154 } 2117 2155 2118 #if def WOLFSSL_DTLS2156 #if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_AEAD_ONLY) 2119 2157 if (ssl->options.dtls) 2120 2158 ssl->hmac = TLS_hmac; … … 2985 3023 2986 3024 if (clientCopy) { 3025 #ifndef WOLFSSL_AEAD_ONLY 2987 3026 XMEMCPY(ssl->keys.client_write_MAC_secret, 2988 keys->client_write_MAC_secret, MAX_DIGEST_SIZE); 3027 keys->client_write_MAC_secret, WC_MAX_DIGEST_SIZE); 3028 #endif 2989 3029 XMEMCPY(ssl->keys.client_write_key, 2990 3030 keys->client_write_key, AES_256_KEY_SIZE); … … 2992 3032 keys->client_write_IV, MAX_WRITE_IV_SZ); 2993 3033 } else { 3034 #ifndef WOLFSSL_AEAD_ONLY 2994 3035 XMEMCPY(ssl->keys.server_write_MAC_secret, 2995 keys->server_write_MAC_secret, MAX_DIGEST_SIZE); 3036 keys->server_write_MAC_secret, WC_MAX_DIGEST_SIZE); 3037 #endif 2996 3038 XMEMCPY(ssl->keys.server_write_key, 2997 3039 keys->server_write_key, AES_256_KEY_SIZE); … … 3062 3104 if (ssl->specs.cipher_type != aead) { 3063 3105 sz = ssl->specs.hash_size; 3106 #ifndef WOLFSSL_AEAD_ONLY 3064 3107 XMEMCPY(keys->client_write_MAC_secret,&keyData[i], sz); 3065 3108 XMEMCPY(keys->server_write_MAC_secret,&keyData[i], sz); 3109 #endif 3066 3110 i += sz; 3067 3111 } … … 3089 3133 sz = ssl->specs.hash_size; 3090 3134 if (side & PROVISION_CLIENT) { 3135 #ifndef WOLFSSL_AEAD_ONLY 3091 3136 XMEMCPY(keys->client_write_MAC_secret,&keyData[i], sz); 3137 #endif 3092 3138 i += sz; 3093 3139 } 3094 3140 if (side & PROVISION_SERVER) { 3141 #ifndef WOLFSSL_AEAD_ONLY 3095 3142 XMEMCPY(keys->server_write_MAC_secret,&keyData[i], sz); 3143 #endif 3096 3144 i += sz; 3097 3145 } … … 3244 3292 ssl->arrays->preMasterSecret[i] = 0; 3245 3293 3294 XFREE(ssl->arrays->preMasterSecret, ssl->heap, DYNAMIC_TYPE_SECRET); 3295 ssl->arrays->preMasterSecret = NULL; 3296 3246 3297 return 0; 3247 3298 } … … 3422 3473 #endif 3423 3474 3424 #ifdef NO_OLD_TLS 3475 #ifndef NO_OLD_TLS 3476 if (ssl->options.tls) return MakeTlsMasterSecret(ssl); 3477 return MakeSslMasterSecret(ssl); 3478 #elif !defined(WOLFSSL_NO_TLS12) 3425 3479 return MakeTlsMasterSecret(ssl); 3426 #elif !defined(NO_TLS) 3427 if (ssl->options.tls) return MakeTlsMasterSecret(ssl); 3428 #endif 3429 3430 #ifndef NO_OLD_TLS 3431 return MakeSslMasterSecret(ssl); 3480 #else 3481 (void)ssl; 3482 return 0; 3432 3483 #endif 3433 3484 }
Note:
See TracChangeset
for help on using the changeset viewer.