Browse Source

re-factor size checks in blake2 implementations

Steffen Jaeckel 8 năm trước cách đây
mục cha
commit
af38b1830e
2 tập tin đã thay đổi với 4 bổ sung4 xóa
  1. 2 2
      src/hashes/blake2b.c
  2. 2 2
      src/hashes/blake2s.c

+ 2 - 2
src/hashes/blake2b.c

@@ -333,14 +333,14 @@ int blake2b_process(hash_state *md, const unsigned char *in, unsigned long inlen
    LTC_ARGCHK(md != NULL);
    LTC_ARGCHK(in != NULL);
 
-   if (md->blake2b.curlen > sizeof(md->blake2b.buf)) {
+   if (md->blake2b.curlen >= sizeof(md->blake2b.buf)) {
       return CRYPT_INVALID_ARG;
    }
 
    if (inlen > 0) {
       unsigned long left = md->blake2b.curlen;
       unsigned long fill = BLAKE2B_BLOCKBYTES - left;
-      if (inlen > fill) {
+      if (inlen >= fill) {
          md->blake2b.curlen = 0;
          XMEMCPY(md->blake2b.buf + left, in, fill); /* Fill buffer */
          blake2b_increment_counter(md, BLAKE2B_BLOCKBYTES);

+ 2 - 2
src/hashes/blake2s.c

@@ -321,14 +321,14 @@ int blake2s_process(hash_state *md, const unsigned char *in, unsigned long inlen
    LTC_ARGCHK(md != NULL);
    LTC_ARGCHK(in != NULL);
 
-   if (md->blake2s.curlen > sizeof(md->blake2s.buf)) {
+   if (md->blake2s.curlen >= sizeof(md->blake2s.buf)) {
       return CRYPT_INVALID_ARG;
    }
 
    if (inlen > 0) {
       unsigned long left = md->blake2s.curlen;
       unsigned long fill = BLAKE2S_BLOCKBYTES - left;
-      if (inlen > fill) {
+      if (inlen >= fill) {
          md->blake2s.curlen = 0;
          XMEMCPY(md->blake2s.buf + left, in, fill); /* Fill buffer */
          blake2s_increment_counter(md, BLAKE2S_BLOCKBYTES);