1. 08 4月, 2017 2 次提交
  2. 18 1月, 2017 2 次提交
  3. 08 1月, 2017 10 次提交
  4. 10 12月, 2016 1 次提交
  5. 08 11月, 2016 1 次提交
    • D
      Implement RSASSA-PKCS1-v1_5 as specified. · 608a0264
      David Benjamin 提交于
      RFC 3447, section 8.2.2, steps 3 and 4 states that verifiers must encode
      the DigestInfo struct and then compare the result against the public key
      operation result. This implies that one and only one encoding is legal.
      
      OpenSSL instead parses with crypto/asn1, then checks that the encoding
      round-trips, and allows some variations for the parameter. Sufficient
      laxness in this area can allow signature forgeries, as described in
      https://www.imperialviolet.org/2014/09/26/pkcs1.html
      
      Although there aren't known attacks against OpenSSL's current scheme,
      this change makes OpenSSL implement the algorithm as specified. This
      avoids the uncertainty and, more importantly, helps grow a healthy
      ecosystem. Laxness beyond the spec, particularly in implementations
      which enjoy wide use, risks harm to the ecosystem for all. A signature
      producer which only tests against OpenSSL may not notice bugs and
      accidentally become widely deployed. Thus implementations have a
      responsibility to honor the specification as tightly as is practical.
      
      In some cases, the damage is permanent and the spec deviation and
      security risk becomes a tax all implementors must forever pay, but not
      here. Both BoringSSL and Go successfully implemented and deployed
      RSASSA-PKCS1-v1_5 as specified since their respective beginnings, so
      this change should be compatible enough to pin down in future OpenSSL
      releases.
      
      See also https://tools.ietf.org/html/draft-thomson-postel-was-wrong-00
      
      As a bonus, by not having to deal with sign/verify differences, this
      version is also somewhat clearer. It also more consistently enforces
      digest lengths in the verify_recover codepath. The NID_md5_sha1 codepath
      wasn't quite doing this right.
      Reviewed-by: NKurt Roeckx <kurt@roeckx.be>
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      
      GH: #1474
      608a0264
  6. 21 7月, 2016 1 次提交
  7. 28 6月, 2016 1 次提交
  8. 27 6月, 2016 1 次提交
  9. 16 6月, 2016 1 次提交
  10. 06 6月, 2016 1 次提交
  11. 24 5月, 2016 1 次提交
  12. 18 5月, 2016 2 次提交
  13. 06 4月, 2016 2 次提交
  14. 21 3月, 2016 1 次提交
  15. 08 3月, 2016 1 次提交
  16. 27 1月, 2016 1 次提交
    • R
      Remove /* foo.c */ comments · 34980760
      Rich Salz 提交于
      This was done by the following
              find . -name '*.[ch]' | /tmp/pl
      where /tmp/pl is the following three-line script:
              print unless $. == 1 && m@/\* .*\.[ch] \*/@;
              close ARGV if eof; # Close file to reset $.
      
      And then some hand-editing of other files.
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      34980760
  17. 08 1月, 2016 1 次提交
  18. 03 12月, 2015 1 次提交
  19. 02 12月, 2015 1 次提交
  20. 18 11月, 2015 1 次提交
  21. 31 10月, 2015 1 次提交
  22. 20 9月, 2015 1 次提交
  23. 11 9月, 2015 1 次提交
  24. 16 7月, 2015 1 次提交
  25. 09 6月, 2015 1 次提交
  26. 01 4月, 2015 1 次提交
  27. 27 1月, 2015 1 次提交
    • R
      OPENSSL_NO_xxx cleanup: many removals · a00ae6c4
      Rich Salz 提交于
      The following compile options (#ifdef's) are removed:
          OPENSSL_NO_BIO OPENSSL_NO_BUFFER OPENSSL_NO_CHAIN_VERIFY
          OPENSSL_NO_EVP OPENSSL_NO_FIPS_ERR OPENSSL_NO_HASH_COMP
          OPENSSL_NO_LHASH OPENSSL_NO_OBJECT OPENSSL_NO_SPEED OPENSSL_NO_STACK
          OPENSSL_NO_X509 OPENSSL_NO_X509_VERIFY
      
      This diff is big because of updating the indents on preprocessor lines.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      a00ae6c4