test_class.file: src/de/slackspace/openkeepass/domain/KeepassHeaderTest.java
test_class.identifier: KeepassHeaderTest
test_case.body: @Test(expected = UnsupportedOperationException.class)
      public void whenVersionIsNotSupportedShouldThrowException() throws IOException {
          KeePassHeader header = new KeePassHeader(new RandomGenerator());
          
          // unsupported format --> e.g. v5
          byte[] rawHeader = ByteUtils.hexStringToByteArray("03D9A29A67FB4BB501000500");
          
          header.checkVersionSupport(rawHeader);
      }
test_case.class_method_signature: KeepassHeaderTest.whenVersionIsNotSupportedShouldThrowException()
test_case.full_signature: @Test(expected = UnsupportedOperationException.class) public void whenVersionIsNotSupportedShouldThrowException()
test_case.identifier: whenVersionIsNotSupportedShouldThrowException
test_case.invocations: hexStringToByteArray checkVersionSupport
test_case.modifiers: @Test(expected = UnsupportedOperationException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void whenVersionIsNotSupportedShouldThrowException()
focal_class.declarator: SIZE_OF_FIELD_LENGTH_BUFFER = 3
focal_class.modifier: private static final
focal_class.original_string: private static final int SIZE_OF_FIELD_LENGTH_BUFFER = 3;
focal_class.type: int
focal_class.var_name: SIZE_OF_FIELD_LENGTH_BUFFER
focal_class.declarator: CIPHER = 2
focal_class.modifier: public static final
focal_class.original_string: public static final int CIPHER = 2;
focal_class.type: int
focal_class.var_name: CIPHER
focal_class.declarator: COMPRESSION = 3
focal_class.modifier: public static final
focal_class.original_string: public static final int COMPRESSION = 3;
focal_class.type: int
focal_class.var_name: COMPRESSION
focal_class.declarator: MASTER_SEED = 4
focal_class.modifier: public static final
focal_class.original_string: public static final int MASTER_SEED = 4;
focal_class.type: int
focal_class.var_name: MASTER_SEED
focal_class.declarator: TRANSFORM_SEED = 5
focal_class.modifier: public static final
focal_class.original_string: public static final int TRANSFORM_SEED = 5;
focal_class.type: int
focal_class.var_name: TRANSFORM_SEED
focal_class.declarator: TRANSFORM_ROUNDS = 6
focal_class.modifier: public static final
focal_class.original_string: public static final int TRANSFORM_ROUNDS = 6;
focal_class.type: int
focal_class.var_name: TRANSFORM_ROUNDS
focal_class.declarator: ENCRYPTION_IV = 7
focal_class.modifier: public static final
focal_class.original_string: public static final int ENCRYPTION_IV = 7;
focal_class.type: int
focal_class.var_name: ENCRYPTION_IV
focal_class.declarator: PROTECTED_STREAM_KEY = 8
focal_class.modifier: public static final
focal_class.original_string: public static final int PROTECTED_STREAM_KEY = 8;
focal_class.type: int
focal_class.var_name: PROTECTED_STREAM_KEY
focal_class.declarator: STREAM_START_BYTES = 9
focal_class.modifier: public static final
focal_class.original_string: public static final int STREAM_START_BYTES = 9;
focal_class.type: int
focal_class.var_name: STREAM_START_BYTES
focal_class.declarator: INNER_RANDOM_STREAM_ID = 10
focal_class.modifier: public static final
focal_class.original_string: public static final int INNER_RANDOM_STREAM_ID = 10;
focal_class.type: int
focal_class.var_name: INNER_RANDOM_STREAM_ID
focal_class.declarator: KDF_PARAMETERS = 11
focal_class.modifier: public static final
focal_class.original_string: public static final int KDF_PARAMETERS = 11;
focal_class.type: int
focal_class.var_name: KDF_PARAMETERS
focal_class.declarator: PUBLIC_CUSTOM_DATA = 12
focal_class.modifier: public static final
focal_class.original_string: public static final int PUBLIC_CUSTOM_DATA = 12;
focal_class.type: int
focal_class.var_name: PUBLIC_CUSTOM_DATA
focal_class.declarator: DATABASE_V2_FILE_SIGNATURE_1 = ByteUtils.hexStringToByteArray("03d9a29a")
focal_class.modifier: private static final
focal_class.original_string: private static final byte[] DATABASE_V2_FILE_SIGNATURE_1 = ByteUtils.hexStringToByteArray("03d9a29a");
focal_class.type: byte[]
focal_class.var_name: DATABASE_V2_FILE_SIGNATURE_1
focal_class.declarator: DATABASE_V2_FILE_SIGNATURE_2 = ByteUtils.hexStringToByteArray("67fb4bb5")
focal_class.modifier: private static final
focal_class.original_string: private static final byte[] DATABASE_V2_FILE_SIGNATURE_2 = ByteUtils.hexStringToByteArray("67fb4bb5");
focal_class.type: byte[]
focal_class.var_name: DATABASE_V2_FILE_SIGNATURE_2
focal_class.declarator: DATABASE_V2_FILE_VERSION = ByteUtils.hexStringToByteArray("00000300")
focal_class.modifier: private static final
focal_class.original_string: private static final byte[] DATABASE_V2_FILE_VERSION = ByteUtils.hexStringToByteArray("00000300");
focal_class.type: byte[]
focal_class.var_name: DATABASE_V2_FILE_VERSION
focal_class.declarator: FILE_VERSION_CRITICAL_MASK = 0xFFFF0000
focal_class.modifier: private static final
focal_class.original_string: private static final int FILE_VERSION_CRITICAL_MASK = 0xFFFF0000;
focal_class.type: int
focal_class.var_name: FILE_VERSION_CRITICAL_MASK
focal_class.declarator: DATABASE_V3_FILE_VERSION_INT = 0x00030001
focal_class.modifier: private static final
focal_class.original_string: private static final int DATABASE_V3_FILE_VERSION_INT = 0x00030001;
focal_class.type: int
focal_class.var_name: DATABASE_V3_FILE_VERSION_INT
focal_class.declarator: DATABASE_V4_FILE_VERSION_INT = 0x00040000
focal_class.modifier: private static final
focal_class.original_string: private static final int DATABASE_V4_FILE_VERSION_INT = 0x00040000;
focal_class.type: int
focal_class.var_name: DATABASE_V4_FILE_VERSION_INT
focal_class.declarator: DATABASE_V2_AES_CIPHER = ByteUtils.hexStringToByteArray("31C1F2E6BF714350BE5805216AFC5AFF")
focal_class.modifier: private static final
focal_class.original_string: private static final byte[] DATABASE_V2_AES_CIPHER = ByteUtils.hexStringToByteArray("31C1F2E6BF714350BE5805216AFC5AFF");
focal_class.type: byte[]
focal_class.var_name: DATABASE_V2_AES_CIPHER
focal_class.declarator: VERSION_SIGNATURE_LENGTH = 12
focal_class.modifier: public static final
focal_class.original_string: public static final int VERSION_SIGNATURE_LENGTH = 12;
focal_class.type: int
focal_class.var_name: VERSION_SIGNATURE_LENGTH
focal_class.declarator: DATABASE_V2_FILE_SIGNATURE_1_INT = 0x9AA2D903 & 0xFF
focal_class.modifier: private static final
focal_class.original_string: private static final int DATABASE_V2_FILE_SIGNATURE_1_INT = 0x9AA2D903 & 0xFF;
focal_class.type: int
focal_class.var_name: DATABASE_V2_FILE_SIGNATURE_1_INT
focal_class.declarator: DATABASE_V2_FILE_SIGNATURE_2_INT = 0xB54BFB67 & 0xFF
focal_class.modifier: private static final
focal_class.original_string: private static final int DATABASE_V2_FILE_SIGNATURE_2_INT = 0xB54BFB67 & 0xFF;
focal_class.type: int
focal_class.var_name: DATABASE_V2_FILE_SIGNATURE_2_INT
focal_class.declarator: OLD_DATABASE_V1_FILE_SIGNATURE_1_INT = 0x9AA2D903 & 0xFF
focal_class.modifier: private static final
focal_class.original_string: private static final int OLD_DATABASE_V1_FILE_SIGNATURE_1_INT = 0x9AA2D903 & 0xFF;
focal_class.type: int
focal_class.var_name: OLD_DATABASE_V1_FILE_SIGNATURE_1_INT
focal_class.declarator: OLD_DATABASE_V1_FILE_SIGNATURE_2_INT = 0xB54BFB65 & 0xFF
focal_class.modifier: private static final
focal_class.original_string: private static final int OLD_DATABASE_V1_FILE_SIGNATURE_2_INT = 0xB54BFB65 & 0xFF;
focal_class.type: int
focal_class.var_name: OLD_DATABASE_V1_FILE_SIGNATURE_2_INT
focal_class.declarator: encryptionCipher
focal_class.modifier: private
focal_class.original_string: private byte[] encryptionCipher;
focal_class.type: byte[]
focal_class.var_name: encryptionCipher
focal_class.declarator: encryptionIV
focal_class.modifier: private
focal_class.original_string: private byte[] encryptionIV;
focal_class.type: byte[]
focal_class.var_name: encryptionIV
focal_class.declarator: streamStartBytes
focal_class.modifier: private
focal_class.original_string: private byte[] streamStartBytes;
focal_class.type: byte[]
focal_class.var_name: streamStartBytes
focal_class.declarator: masterSeed
focal_class.modifier: private
focal_class.original_string: private byte[] masterSeed;
focal_class.type: byte[]
focal_class.var_name: masterSeed
focal_class.declarator: transformSeed
focal_class.modifier: private
focal_class.original_string: private byte[] transformSeed;
focal_class.type: byte[]
focal_class.var_name: transformSeed
focal_class.declarator: protectedStreamKey
focal_class.modifier: private
focal_class.original_string: private byte[] protectedStreamKey;
focal_class.type: byte[]
focal_class.var_name: protectedStreamKey
focal_class.declarator: compressionAlgorithm
focal_class.modifier: private
focal_class.original_string: private CompressionAlgorithm compressionAlgorithm;
focal_class.type: CompressionAlgorithm
focal_class.var_name: compressionAlgorithm
focal_class.declarator: transformRounds
focal_class.modifier: private
focal_class.original_string: private long transformRounds;
focal_class.type: long
focal_class.var_name: transformRounds
focal_class.declarator: crsAlgorithm
focal_class.modifier: private
focal_class.original_string: private CrsAlgorithm crsAlgorithm;
focal_class.type: CrsAlgorithm
focal_class.var_name: crsAlgorithm
focal_class.declarator: fileFormatVersion
focal_class.modifier: private
focal_class.original_string: private int fileFormatVersion;
focal_class.type: int
focal_class.var_name: fileFormatVersion
focal_class.declarator: variantDictionary
focal_class.modifier: private
focal_class.original_string: private VariantDictionary variantDictionary;
focal_class.type: VariantDictionary
focal_class.var_name: variantDictionary
focal_class.file: src/de/slackspace/openkeepass/domain/KeePassHeader.java
focal_class.identifier: KeePassHeader
focal_class.class_method_signature: KeePassHeader.KeePassHeader()
focal_class.full_signature: public  KeePassHeader()
focal_class.identifier: KeePassHeader
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  KeePassHeader()
focal_class.class_method_signature: KeePassHeader.KeePassHeader(ByteGenerator byteGenerator)
focal_class.full_signature: public  KeePassHeader(ByteGenerator byteGenerator)
focal_class.identifier: KeePassHeader
focal_class.modifiers: public
focal_class.parameters: (ByteGenerator byteGenerator)
focal_class.signature:  KeePassHeader(ByteGenerator byteGenerator)
focal_class.class_method_signature: KeePassHeader.setValue(int headerId, byte[] value)
focal_class.full_signature: public void setValue(int headerId, byte[] value)
focal_class.identifier: setValue
focal_class.modifiers: public
focal_class.parameters: (int headerId, byte[] value)
focal_class.return: void
focal_class.signature: void setValue(int headerId, byte[] value)
focal_class.class_method_signature: KeePassHeader.checkVersionSupport(byte[] keepassFile)
focal_class.full_signature: public void checkVersionSupport(byte[] keepassFile)
focal_class.identifier: checkVersionSupport
focal_class.modifiers: public
focal_class.parameters: (byte[] keepassFile)
focal_class.return: void
focal_class.signature: void checkVersionSupport(byte[] keepassFile)
focal_class.class_method_signature: KeePassHeader.isVersionSupported(int version)
focal_class.full_signature: private boolean isVersionSupported(int version)
focal_class.identifier: isVersionSupported
focal_class.modifiers: private
focal_class.parameters: (int version)
focal_class.return: boolean
focal_class.signature: boolean isVersionSupported(int version)
focal_class.class_method_signature: KeePassHeader.read(byte[] keepassFile)
focal_class.full_signature: @SuppressWarnings("resource") public void read(byte[] keepassFile)
focal_class.identifier: read
focal_class.modifiers: @SuppressWarnings("resource") public
focal_class.parameters: (byte[] keepassFile)
focal_class.return: void
focal_class.signature: void read(byte[] keepassFile)
focal_class.class_method_signature: KeePassHeader.getBytes()
focal_class.full_signature: public byte[] getBytes()
focal_class.identifier: getBytes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getBytes()
focal_class.class_method_signature: KeePassHeader.getEndOfHeader()
focal_class.full_signature: private byte[] getEndOfHeader()
focal_class.identifier: getEndOfHeader
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getEndOfHeader()
focal_class.class_method_signature: KeePassHeader.getValue(int headerId)
focal_class.full_signature: public byte[] getValue(int headerId)
focal_class.identifier: getValue
focal_class.modifiers: public
focal_class.parameters: (int headerId)
focal_class.return: byte[]
focal_class.signature: byte[] getValue(int headerId)
focal_class.class_method_signature: KeePassHeader.setInnerRandomStreamId(byte[] value)
focal_class.full_signature: private void setInnerRandomStreamId(byte[] value)
focal_class.identifier: setInnerRandomStreamId
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setInnerRandomStreamId(byte[] value)
focal_class.class_method_signature: KeePassHeader.getInnerRandomStreamId()
focal_class.full_signature: private byte[] getInnerRandomStreamId()
focal_class.identifier: getInnerRandomStreamId
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getInnerRandomStreamId()
focal_class.class_method_signature: KeePassHeader.setStreamStartBytes(byte[] value)
focal_class.full_signature: private void setStreamStartBytes(byte[] value)
focal_class.identifier: setStreamStartBytes
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setStreamStartBytes(byte[] value)
focal_class.class_method_signature: KeePassHeader.setProtectedStreamKey(byte[] value)
focal_class.full_signature: private void setProtectedStreamKey(byte[] value)
focal_class.identifier: setProtectedStreamKey
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setProtectedStreamKey(byte[] value)
focal_class.class_method_signature: KeePassHeader.setEncryptionIV(byte[] value)
focal_class.full_signature: private void setEncryptionIV(byte[] value)
focal_class.identifier: setEncryptionIV
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setEncryptionIV(byte[] value)
focal_class.class_method_signature: KeePassHeader.setTransformRounds(byte[] value)
focal_class.full_signature: private void setTransformRounds(byte[] value)
focal_class.identifier: setTransformRounds
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setTransformRounds(byte[] value)
focal_class.class_method_signature: KeePassHeader.setTransformSeed(byte[] value)
focal_class.full_signature: private void setTransformSeed(byte[] value)
focal_class.identifier: setTransformSeed
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setTransformSeed(byte[] value)
focal_class.class_method_signature: KeePassHeader.setMasterSeed(byte[] value)
focal_class.full_signature: private void setMasterSeed(byte[] value)
focal_class.identifier: setMasterSeed
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setMasterSeed(byte[] value)
focal_class.class_method_signature: KeePassHeader.setCompressionFlag(byte[] value)
focal_class.full_signature: private void setCompressionFlag(byte[] value)
focal_class.identifier: setCompressionFlag
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setCompressionFlag(byte[] value)
focal_class.class_method_signature: KeePassHeader.setCompression(CompressionAlgorithm algorithm)
focal_class.full_signature: public void setCompression(CompressionAlgorithm algorithm)
focal_class.identifier: setCompression
focal_class.modifiers: public
focal_class.parameters: (CompressionAlgorithm algorithm)
focal_class.return: void
focal_class.signature: void setCompression(CompressionAlgorithm algorithm)
focal_class.class_method_signature: KeePassHeader.getCompressionFlag()
focal_class.full_signature: private byte[] getCompressionFlag()
focal_class.identifier: getCompressionFlag
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getCompressionFlag()
focal_class.class_method_signature: KeePassHeader.setCipher(byte[] value)
focal_class.full_signature: private void setCipher(byte[] value)
focal_class.identifier: setCipher
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setCipher(byte[] value)
focal_class.class_method_signature: KeePassHeader.getCipher()
focal_class.full_signature: public byte[] getCipher()
focal_class.identifier: getCipher
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getCipher()
focal_class.class_method_signature: KeePassHeader.getCompression()
focal_class.full_signature: public CompressionAlgorithm getCompression()
focal_class.identifier: getCompression
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: CompressionAlgorithm
focal_class.signature: CompressionAlgorithm getCompression()
focal_class.class_method_signature: KeePassHeader.getTransformRounds()
focal_class.full_signature: public long getTransformRounds()
focal_class.identifier: getTransformRounds
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getTransformRounds()
focal_class.class_method_signature: KeePassHeader.setTransformRounds(long rounds)
focal_class.full_signature: public void setTransformRounds(long rounds)
focal_class.identifier: setTransformRounds
focal_class.modifiers: public
focal_class.parameters: (long rounds)
focal_class.return: void
focal_class.signature: void setTransformRounds(long rounds)
focal_class.class_method_signature: KeePassHeader.getTransformRoundsByte()
focal_class.full_signature: private byte[] getTransformRoundsByte()
focal_class.identifier: getTransformRoundsByte
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getTransformRoundsByte()
focal_class.class_method_signature: KeePassHeader.getEncryptionIV()
focal_class.full_signature: public byte[] getEncryptionIV()
focal_class.identifier: getEncryptionIV
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getEncryptionIV()
focal_class.class_method_signature: KeePassHeader.getStreamStartBytes()
focal_class.full_signature: public byte[] getStreamStartBytes()
focal_class.identifier: getStreamStartBytes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getStreamStartBytes()
focal_class.class_method_signature: KeePassHeader.getCrsAlgorithm()
focal_class.full_signature: public CrsAlgorithm getCrsAlgorithm()
focal_class.identifier: getCrsAlgorithm
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: CrsAlgorithm
focal_class.signature: CrsAlgorithm getCrsAlgorithm()
focal_class.class_method_signature: KeePassHeader.setCrsAlgorithm(CrsAlgorithm algorithm)
focal_class.full_signature: public void setCrsAlgorithm(CrsAlgorithm algorithm)
focal_class.identifier: setCrsAlgorithm
focal_class.modifiers: public
focal_class.parameters: (CrsAlgorithm algorithm)
focal_class.return: void
focal_class.signature: void setCrsAlgorithm(CrsAlgorithm algorithm)
focal_class.class_method_signature: KeePassHeader.getMasterSeed()
focal_class.full_signature: public byte[] getMasterSeed()
focal_class.identifier: getMasterSeed
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getMasterSeed()
focal_class.class_method_signature: KeePassHeader.getTransformSeed()
focal_class.full_signature: public byte[] getTransformSeed()
focal_class.identifier: getTransformSeed
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getTransformSeed()
focal_class.class_method_signature: KeePassHeader.setKdfParameters(byte[] value)
focal_class.full_signature: private void setKdfParameters(byte[] value)
focal_class.identifier: setKdfParameters
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: void
focal_class.signature: void setKdfParameters(byte[] value)
focal_class.class_method_signature: KeePassHeader.getKdfParameters()
focal_class.full_signature: public VariantDictionary getKdfParameters()
focal_class.identifier: getKdfParameters
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: VariantDictionary
focal_class.signature: VariantDictionary getKdfParameters()
focal_class.class_method_signature: KeePassHeader.getHeaderSize()
focal_class.full_signature: public int getHeaderSize()
focal_class.identifier: getHeaderSize
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getHeaderSize()
focal_class.class_method_signature: KeePassHeader.getProtectedStreamKey()
focal_class.full_signature: public byte[] getProtectedStreamKey()
focal_class.identifier: getProtectedStreamKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getProtectedStreamKey()
focal_class.class_method_signature: KeePassHeader.getFileFormatVersion()
focal_class.full_signature: public int getFileFormatVersion()
focal_class.identifier: getFileFormatVersion
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getFileFormatVersion()
focal_class.class_method_signature: KeePassHeader.wrapInBuffer(byte[] value)
focal_class.full_signature: private ByteBuffer wrapInBuffer(byte[] value)
focal_class.identifier: wrapInBuffer
focal_class.modifiers: private
focal_class.parameters: (byte[] value)
focal_class.return: ByteBuffer
focal_class.signature: ByteBuffer wrapInBuffer(byte[] value)
focal_class.class_method_signature: KeePassHeader.wrapInBuffer(int value)
focal_class.full_signature: private byte[] wrapInBuffer(int value)
focal_class.identifier: wrapInBuffer
focal_class.modifiers: private
focal_class.parameters: (int value)
focal_class.return: byte[]
focal_class.signature: byte[] wrapInBuffer(int value)
focal_class.class_method_signature: KeePassHeader.wrapInBuffer(long value)
focal_class.full_signature: private byte[] wrapInBuffer(long value)
focal_class.identifier: wrapInBuffer
focal_class.modifiers: private
focal_class.parameters: (long value)
focal_class.return: byte[]
focal_class.signature: byte[] wrapInBuffer(long value)
focal_method.body: public void checkVersionSupport(byte[] keepassFile) throws IOException {
          BufferedInputStream inputStream = new BufferedInputStream(new ByteArrayInputStream(keepassFile));
  
          byte[] signature = new byte[VERSION_SIGNATURE_LENGTH];
          int readBytes = inputStream.read(signature);
          if (readBytes == -1) {
              throw new UnsupportedOperationException("Could not read KeePass header. The provided file seems to be no KeePass database file!");
          }
  
          ByteBuffer signatureBuffer = ByteBuffer.wrap(signature);
          signatureBuffer.order(ByteOrder.LITTLE_ENDIAN);
  
          int signaturePart1 = ByteUtils.toUnsignedInt(signatureBuffer.getInt());
          int signaturePart2 = ByteUtils.toUnsignedInt(signatureBuffer.getInt());
          int version = signatureBuffer.getInt();
          this.fileFormatVersion = version;
  
          if (signaturePart1 == DATABASE_V2_FILE_SIGNATURE_1_INT && signaturePart2 == DATABASE_V2_FILE_SIGNATURE_2_INT) {
              if(!isVersionSupported(version)) {
                  throw new UnsupportedOperationException("The provided KeePass database file seems to be from a newer KeePass version which is not supported!");    
              }
          } else if (signaturePart1 == OLD_DATABASE_V1_FILE_SIGNATURE_1_INT && signaturePart2 == OLD_DATABASE_V1_FILE_SIGNATURE_2_INT) {
              throw new UnsupportedOperationException("The provided KeePass database file seems to be from KeePass 1.x which is not supported!");
          } 
          else {
              throw new UnsupportedOperationException("The provided file seems to be no KeePass database file!");
          }
      }
focal_method.class_method_signature: KeePassHeader.checkVersionSupport(byte[] keepassFile)
focal_method.full_signature: public void checkVersionSupport(byte[] keepassFile)
focal_method.identifier: checkVersionSupport
focal_method.invocations: read wrap order toUnsignedInt getInt toUnsignedInt getInt getInt isVersionSupported
focal_method.modifiers: public
focal_method.parameters: (byte[] keepassFile)
focal_method.return: void
focal_method.signature: void checkVersionSupport(byte[] keepassFile)