Class HpackUtil

java.lang.Object
io.netty.handler.codec.http2.HpackUtil

final class HpackUtil extends java.lang.Object
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) static enum 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) static final byte[]
     
    (package private) static final int[]
     
    (package private) static final int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) static int
    equalsConstantTime(java.lang.CharSequence s1, java.lang.CharSequence s2)
    Compare two CharSequence objects without leaking timing information.
    (package private) static boolean
    equalsVariableTime(java.lang.CharSequence s1, java.lang.CharSequence s2)
    Compare two CharSequences.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • HUFFMAN_CODES

      static final int[] HUFFMAN_CODES
    • HUFFMAN_CODE_LENGTHS

      static final byte[] HUFFMAN_CODE_LENGTHS
    • HUFFMAN_EOS

      static final int HUFFMAN_EOS
      See Also:
  • Constructor Details

    • HpackUtil

      private HpackUtil()
  • Method Details

    • equalsConstantTime

      static int equalsConstantTime(java.lang.CharSequence s1, java.lang.CharSequence s2)
      Compare two CharSequence objects without leaking timing information.

      The int return type is intentional and is designed to allow cascading of constant time operations:

          String s1 = "foo";
          String s2 = "foo";
          String s3 = "foo";
          String s4 = "goo";
          boolean equals = (equalsConstantTime(s1, s2) invalid input: '&' equalsConstantTime(s3, s4)) != 0;
      
      Parameters:
      s1 - the first value.
      s2 - the second value.
      Returns:
      0 if not equal. 1 if equal.
    • equalsVariableTime

      static boolean equalsVariableTime(java.lang.CharSequence s1, java.lang.CharSequence s2)
      Compare two CharSequences.
      Parameters:
      s1 - the first value.
      s2 - the second value.
      Returns:
      false if not equal. true if equal.