blob: f97b7dc6e13b84dd4d26be3ed4c437af9087f9ba [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="Apache Shiro :: Cryptography :: Hashing"><sessioninfo id="yupiik-fpapon-4200be8a" start="1555585887753" dump="1555585888927"/><sessioninfo id="yupiik-fpapon-bf93f840" start="1556680638253" dump="1556680639509"/><package name="org/apache/shiro/crypto/hash"><class name="org/apache/shiro/crypto/hash/ConfigurableHashService" sourcefilename="ConfigurableHashService.java"/><class name="org/apache/shiro/crypto/hash/Md2Hash" sourcefilename="Md2Hash.java"><method name="&lt;init&gt;" desc="()V" line="39"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="43"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="47"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="51"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md2Hash;" line="55"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md2Hash;" line="61"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/shiro/crypto/hash/DefaultHashService" sourcefilename="DefaultHashService.java"><method name="&lt;init&gt;" desc="()V" line="110"><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="computeHash" desc="(Lorg/apache/shiro/crypto/hash/HashRequest;)Lorg/apache/shiro/crypto/hash/Hash;" line="151"><counter type="INSTRUCTION" missed="0" covered="59"/><counter type="BRANCH" missed="1" covered="5"/><counter type="LINE" missed="0" covered="14"/><counter type="COMPLEXITY" missed="1" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getAlgorithmName" desc="(Lorg/apache/shiro/crypto/hash/HashRequest;)Ljava/lang/String;" line="175"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIterations" desc="(Lorg/apache/shiro/crypto/hash/HashRequest;)I" line="183"><counter type="INSTRUCTION" missed="0" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getPublicSalt" desc="(Lorg/apache/shiro/crypto/hash/HashRequest;)Lorg/apache/shiro/util/ByteSource;" line="214"><counter type="INSTRUCTION" missed="0" covered="35"/><counter type="BRANCH" missed="2" covered="10"/><counter type="LINE" missed="0" covered="9"/><counter type="COMPLEXITY" missed="2" covered="5"/><counter type="METHOD" missed="0" covered="1"/></method><method name="combine" desc="(Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/util/ByteSource;" line="248"><counter type="INSTRUCTION" missed="8" covered="80"/><counter type="BRANCH" missed="4" covered="18"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="4" covered="8"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setHashAlgorithmName" desc="(Ljava/lang/String;)V" line="276"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getHashAlgorithmName" desc="()Ljava/lang/String;" line="280"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setPrivateSalt" desc="(Lorg/apache/shiro/util/ByteSource;)V" line="284"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getPrivateSalt" desc="()Lorg/apache/shiro/util/ByteSource;" line="288"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setHashIterations" desc="(I)V" line="292"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getHashIterations" desc="()I" line="296"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setRandomNumberGenerator" desc="(Lorg/apache/shiro/crypto/RandomNumberGenerator;)V" line="300"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getRandomNumberGenerator" desc="()Lorg/apache/shiro/crypto/RandomNumberGenerator;" line="304"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isGeneratePublicSalt" desc="()Z" line="323"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGeneratePublicSalt" desc="(Z)V" line="342"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="69"><counter type="INSTRUCTION" missed="2" covered="6"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="10" covered="257"/><counter type="BRANCH" missed="10" covered="36"/><counter type="LINE" missed="0" covered="69"/><counter type="COMPLEXITY" missed="10" covered="30"/><counter type="METHOD" missed="0" covered="17"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/HashRequest$Builder" sourcefilename="HashRequest.java"><method name="&lt;init&gt;" desc="()V" line="95"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSource" desc="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="109"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSource" desc="(Ljava/lang/Object;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="130"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSalt" desc="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="148"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSalt" desc="(Ljava/lang/Object;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="169"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setIterations" desc="(I)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="190"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setAlgorithmName" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line="212"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="build" desc="()Lorg/apache/shiro/crypto/hash/HashRequest;" line="222"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="50"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="8"/><counter type="METHOD" missed="0" covered="8"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/Sha384Hash" sourcefilename="Sha384Hash.java"><method name="&lt;init&gt;" desc="()V" line="43"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="47"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="51"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="55"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha384Hash;" line="59"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha384Hash;" line="65"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/shiro/crypto/hash/Sha512Hash" sourcefilename="Sha512Hash.java"><method name="&lt;init&gt;" desc="()V" line="42"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="46"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="50"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="54"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha512Hash;" line="58"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha512Hash;" line="64"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/shiro/crypto/hash/Sha256Hash" sourcefilename="Sha256Hash.java"><method name="&lt;init&gt;" desc="()V" line="42"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="46"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="50"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="54"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha256Hash;" line="58"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha256Hash;" line="64"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/shiro/crypto/hash/Md5Hash" sourcefilename="Md5Hash.java"><method name="&lt;init&gt;" desc="()V" line="40"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="44"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="48"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="52"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md5Hash;" line="56"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md5Hash;" line="62"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/shiro/crypto/hash/SimpleHashRequest" sourcefilename="SimpleHashRequest.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;I)V" line="49"><counter type="INSTRUCTION" missed="0" covered="24"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getSource" desc="()Lorg/apache/shiro/util/ByteSource;" line="60"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getSalt" desc="()Lorg/apache/shiro/util/ByteSource;" line="64"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIterations" desc="()I" line="68"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getAlgorithmName" desc="()Ljava/lang/String;" line="72"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="36"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="12"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/HashRequest" sourcefilename="HashRequest.java"/><class name="org/apache/shiro/crypto/hash/SimpleHash" sourcefilename="SimpleHash.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="70"><counter type="INSTRUCTION" missed="0" covered="15"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/Object;)V" line="117"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" line="139"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)V" line="70"><counter type="INSTRUCTION" missed="5" covered="40"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="1" covered="13"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="convertSourceToBytes" desc="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line="192"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="convertSaltToBytes" desc="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line="206"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toByteSource" desc="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line="217"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="hash" desc="(Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;I)V" line="228"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getAlgorithmName" desc="()Ljava/lang/String;" line="239"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getSalt" desc="()Lorg/apache/shiro/util/ByteSource;" line="243"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIterations" desc="()I" line="247"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getBytes" desc="()[B" line="251"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setBytes" desc="([B)V" line="263"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setIterations" desc="(I)V" line="278"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSalt" desc="(Lorg/apache/shiro/util/ByteSource;)V" line="291"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getDigest" desc="(Ljava/lang/String;)Ljava/security/MessageDigest;" line="303"><counter type="INSTRUCTION" missed="18" covered="3"/><counter type="LINE" missed="3" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="hash" desc="([B)[B" line="318"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hash" desc="([B[B)[B" line="330"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hash" desc="([B[BI)[B" line="343"><counter type="INSTRUCTION" missed="0" covered="35"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isEmpty" desc="()Z" line="359"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toHex" desc="()Ljava/lang/String;" line="372"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toBase64" desc="()Ljava/lang/String;" line="388"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="401"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="equals" desc="(Ljava/lang/Object;)Z" line="413"><counter type="INSTRUCTION" missed="2" covered="12"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="3"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="hashCode" desc="()I" line="426"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="73" covered="207"/><counter type="BRANCH" missed="11" covered="17"/><counter type="LINE" missed="15" covered="62"/><counter type="COMPLEXITY" missed="13" covered="26"/><counter type="METHOD" missed="6" covered="19"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/Hash" sourcefilename="Hash.java"/><class name="org/apache/shiro/crypto/hash/Sha1Hash" sourcefilename="Sha1Hash.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="45"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="49"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="53"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromHexString" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha1Hash;" line="57"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fromBase64String" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha1Hash;" line="63"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="37" covered="5"/><counter type="LINE" missed="12" covered="2"/><counter type="COMPLEXITY" missed="5" covered="1"/><counter type="METHOD" missed="5" covered="1"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/AbstractHash" sourcefilename="AbstractHash.java"><method name="&lt;init&gt;" desc="()V" line="52"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;)V" line="107"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/Object;Ljava/lang/Object;I)V" line="52"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getBytes" desc="()[B" line="148"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setBytes" desc="([B)V" line="160"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDigest" desc="(Ljava/lang/String;)Ljava/security/MessageDigest;" line="174"><counter type="INSTRUCTION" missed="21" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hash" desc="([B)[B" line="188"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hash" desc="([B[B)[B" line="199"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hash" desc="([B[BI)[B" line="212"><counter type="INSTRUCTION" missed="35" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toHex" desc="()Ljava/lang/String;" line="237"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toBase64" desc="()Ljava/lang/String;" line="253"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="266"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="equals" desc="(Ljava/lang/Object;)Z" line="278"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="hashCode" desc="()I" line="291"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printMainUsage" desc="(Ljava/lang/Class;Ljava/lang/String;)V" line="298"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="isReserved" desc="(Ljava/lang/String;)Z" line="307"><counter type="INSTRUCTION" missed="16" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="doMain" desc="(Ljava/lang/Class;[Ljava/lang/String;)I" line="311"><counter type="INSTRUCTION" missed="158" covered="0"/><counter type="BRANCH" missed="22" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="390" covered="12"/><counter type="BRANCH" missed="44" covered="0"/><counter type="LINE" missed="94" covered="5"/><counter type="COMPLEXITY" missed="39" covered="1"/><counter type="METHOD" missed="17" covered="1"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/HashService" sourcefilename="HashService.java"/><sourcefile name="HashRequest.java"><line nr="95" mi="0" ci="2" mb="0" cb="0"/><line nr="96" mi="0" ci="3" mb="0" cb="0"/><line nr="97" mi="0" ci="1" mb="0" cb="0"/><line nr="109" mi="0" ci="3" mb="0" cb="0"/><line nr="110" mi="0" ci="2" mb="0" cb="0"/><line nr="130" mi="0" ci="4" mb="0" cb="0"/><line nr="131" mi="0" ci="2" mb="0" cb="0"/><line nr="148" mi="0" ci="3" mb="0" cb="0"/><line nr="149" mi="0" ci="2" mb="0" cb="0"/><line nr="169" mi="0" ci="4" mb="0" cb="0"/><line nr="170" mi="0" ci="2" mb="0" cb="0"/><line nr="190" mi="0" ci="3" mb="0" cb="0"/><line nr="191" mi="0" ci="2" mb="0" cb="0"/><line nr="212" mi="0" ci="3" mb="0" cb="0"/><line nr="213" mi="0" ci="2" mb="0" cb="0"/><line nr="222" mi="0" ci="12" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="50"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="8"/><counter type="METHOD" missed="0" covered="8"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Sha256Hash.java"><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="6" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="4" ci="0" mb="0" cb="0"/><line nr="59" mi="4" ci="0" mb="0" cb="0"/><line nr="60" mi="2" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Sha512Hash.java"><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="6" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="4" ci="0" mb="0" cb="0"/><line nr="59" mi="4" ci="0" mb="0" cb="0"/><line nr="60" mi="2" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Sha1Hash.java"><line nr="41" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="0" ci="4" mb="0" cb="0"/><line nr="46" mi="0" ci="1" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="6" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="58" mi="4" ci="0" mb="0" cb="0"/><line nr="59" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="65" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="37" covered="5"/><counter type="LINE" missed="12" covered="2"/><counter type="COMPLEXITY" missed="5" covered="1"/><counter type="METHOD" missed="5" covered="1"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="SimpleHashRequest.java"><line nr="49" mi="0" ci="2" mb="0" cb="0"/><line nr="50" mi="0" ci="2" mb="0" cb="2"/><line nr="51" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="3" mb="0" cb="0"/><line nr="54" mi="0" ci="3" mb="0" cb="0"/><line nr="55" mi="0" ci="3" mb="0" cb="0"/><line nr="56" mi="0" ci="5" mb="0" cb="0"/><line nr="57" mi="0" ci="1" mb="0" cb="0"/><line nr="60" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="68" mi="0" ci="3" mb="0" cb="0"/><line nr="72" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="36"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="12"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AbstractHash.java"><line nr="52" mi="3" ci="3" mb="0" cb="0"/><line nr="57" mi="3" ci="3" mb="0" cb="0"/><line nr="61" mi="3" ci="3" mb="0" cb="0"/><line nr="72" mi="0" ci="2" mb="0" cb="0"/><line nr="73" mi="0" ci="1" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="107" mi="5" ci="0" mb="0" cb="0"/><line nr="108" mi="1" ci="0" mb="0" cb="0"/><line nr="129" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="2" ci="0" mb="0" cb="0"/><line nr="132" mi="2" ci="0" mb="2" cb="0"/><line nr="133" mi="4" ci="0" mb="0" cb="0"/><line nr="135" mi="6" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="1" ci="0" mb="0" cb="0"/><line nr="148" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="1" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="11" ci="0" mb="0" cb="0"/><line nr="177" mi="6" ci="0" mb="0" cb="0"/><line nr="188" mi="6" ci="0" mb="0" cb="0"/><line nr="199" mi="6" ci="0" mb="0" cb="0"/><line nr="212" mi="5" ci="0" mb="0" cb="0"/><line nr="213" mi="2" ci="0" mb="2" cb="0"/><line nr="214" mi="2" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="217" mi="4" ci="0" mb="0" cb="0"/><line nr="218" mi="4" ci="0" mb="0" cb="0"/><line nr="220" mi="7" ci="0" mb="2" cb="0"/><line nr="221" mi="2" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="224" mi="2" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="238" mi="5" ci="0" mb="0" cb="0"/><line nr="240" mi="3" ci="0" mb="0" cb="0"/><line nr="253" mi="3" ci="0" mb="2" cb="0"/><line nr="255" mi="5" ci="0" mb="0" cb="0"/><line nr="257" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="278" mi="3" ci="0" mb="2" cb="0"/><line nr="279" mi="3" ci="0" mb="0" cb="0"/><line nr="280" mi="6" ci="0" mb="0" cb="0"/><line nr="282" mi="2" ci="0" mb="0" cb="0"/><line nr="291" mi="7" ci="0" mb="4" cb="0"/><line nr="292" mi="2" ci="0" mb="0" cb="0"/><line nr="294" mi="4" ci="0" mb="0" cb="0"/><line nr="298" mi="12" ci="0" mb="0" cb="0"/><line nr="299" mi="13" ci="0" mb="0" cb="0"/><line nr="300" mi="3" ci="0" mb="0" cb="0"/><line nr="301" mi="3" ci="0" mb="0" cb="0"/><line nr="302" mi="3" ci="0" mb="0" cb="0"/><line nr="303" mi="3" ci="0" mb="0" cb="0"/><line nr="304" mi="1" ci="0" mb="0" cb="0"/><line nr="307" mi="16" ci="0" mb="6" cb="0"/><line nr="311" mi="3" ci="0" mb="0" cb="0"/><line nr="312" mi="4" ci="0" mb="0" cb="0"/><line nr="313" mi="6" ci="0" mb="0" cb="0"/><line nr="315" mi="10" ci="0" mb="6" cb="0"/><line nr="316" mi="3" ci="0" mb="0" cb="0"/><line nr="317" mi="2" ci="0" mb="0" cb="0"/><line nr="319" mi="2" ci="0" mb="0" cb="0"/><line nr="320" mi="2" ci="0" mb="0" cb="0"/><line nr="321" mi="2" ci="0" mb="0" cb="0"/><line nr="322" mi="7" ci="0" mb="0" cb="0"/><line nr="323" mi="8" ci="0" mb="2" cb="0"/><line nr="324" mi="4" ci="0" mb="0" cb="0"/><line nr="325" mi="4" ci="0" mb="2" cb="0"/><line nr="326" mi="3" ci="0" mb="0" cb="0"/><line nr="327" mi="4" ci="0" mb="2" cb="0"/><line nr="328" mi="8" ci="0" mb="2" cb="0"/><line nr="329" mi="2" ci="0" mb="0" cb="0"/><line nr="331" mi="3" ci="0" mb="0" cb="0"/><line nr="332" mi="3" ci="0" mb="0" cb="0"/><line nr="333" mi="2" ci="0" mb="0" cb="0"/><line nr="335" mi="7" ci="0" mb="0" cb="0"/><line nr="336" mi="4" ci="0" mb="2" cb="0"/><line nr="337" mi="8" ci="0" mb="2" cb="0"/><line nr="338" mi="2" ci="0" mb="0" cb="0"/><line nr="340" mi="3" ci="0" mb="0" cb="0"/><line nr="341" mi="3" ci="0" mb="0" cb="0"/><line nr="342" mi="2" ci="0" mb="0" cb="0"/><line nr="345" mi="8" ci="0" mb="0" cb="0"/><line nr="346" mi="1" ci="0" mb="0" cb="0"/><line nr="347" mi="2" ci="0" mb="0" cb="0"/><line nr="348" mi="3" ci="0" mb="0" cb="0"/><line nr="349" mi="3" ci="0" mb="0" cb="0"/><line nr="350" mi="2" ci="0" mb="0" cb="0"/><line nr="351" mi="1" ci="0" mb="0" cb="0"/><line nr="355" mi="7" ci="0" mb="0" cb="0"/><line nr="356" mi="8" ci="0" mb="2" cb="0"/><line nr="357" mi="7" ci="0" mb="2" cb="0"/><line nr="358" mi="3" ci="0" mb="0" cb="0"/><line nr="359" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="390" covered="12"/><counter type="BRANCH" missed="44" covered="0"/><counter type="LINE" missed="94" covered="5"/><counter type="COMPLEXITY" missed="39" covered="1"/><counter type="METHOD" missed="17" covered="1"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="HashService.java"/><sourcefile name="DefaultHashService.java"><line nr="69" mi="2" ci="6" mb="1" cb="1"/><line nr="110" mi="0" ci="2" mb="0" cb="0"/><line nr="111" mi="0" ci="3" mb="0" cb="0"/><line nr="112" mi="0" ci="3" mb="0" cb="0"/><line nr="113" mi="0" ci="3" mb="0" cb="0"/><line nr="114" mi="0" ci="5" mb="0" cb="0"/><line nr="115" mi="0" ci="1" mb="0" cb="0"/><line nr="151" mi="0" ci="9" mb="1" cb="5"/><line nr="152" mi="0" ci="2" mb="0" cb="0"/><line nr="155" mi="0" ci="4" mb="0" cb="0"/><line nr="156" mi="0" ci="3" mb="0" cb="0"/><line nr="157" mi="0" ci="4" mb="0" cb="0"/><line nr="159" mi="0" ci="4" mb="0" cb="0"/><line nr="160" mi="0" ci="3" mb="0" cb="0"/><line nr="161" mi="0" ci="5" mb="0" cb="0"/><line nr="163" mi="0" ci="8" mb="0" cb="0"/><line nr="165" mi="0" ci="5" mb="0" cb="0"/><line nr="166" mi="0" ci="4" mb="0" cb="0"/><line nr="167" mi="0" ci="3" mb="0" cb="0"/><line nr="169" mi="0" ci="3" mb="0" cb="0"/><line nr="171" mi="0" ci="2" mb="0" cb="0"/><line nr="175" mi="0" ci="3" mb="0" cb="0"/><line nr="176" mi="0" ci="2" mb="1" cb="1"/><line nr="177" mi="0" ci="3" mb="0" cb="0"/><line nr="179" mi="0" ci="2" mb="0" cb="0"/><line nr="183" mi="0" ci="5" mb="0" cb="0"/><line nr="184" mi="0" ci="3" mb="1" cb="1"/><line nr="185" mi="0" ci="5" mb="0" cb="0"/><line nr="187" mi="0" ci="2" mb="0" cb="0"/><line nr="214" mi="0" ci="3" mb="0" cb="0"/><line nr="216" mi="0" ci="5" mb="1" cb="3"/><line nr="218" mi="0" ci="2" mb="0" cb="0"/><line nr="221" mi="0" ci="2" mb="0" cb="0"/><line nr="224" mi="0" ci="3" mb="0" cb="0"/><line nr="225" mi="0" ci="9" mb="1" cb="3"/><line nr="229" mi="0" ci="5" mb="0" cb="4"/><line nr="230" mi="0" ci="4" mb="0" cb="0"/><line nr="233" mi="0" ci="2" mb="0" cb="0"/><line nr="248" mi="0" ci="7" mb="0" cb="2"/><line nr="249" mi="0" ci="7" mb="0" cb="2"/><line nr="251" mi="0" ci="7" mb="0" cb="2"/><line nr="252" mi="0" ci="7" mb="0" cb="2"/><line nr="254" mi="0" ci="4" mb="0" cb="0"/><line nr="256" mi="0" ci="2" mb="0" cb="2"/><line nr="257" mi="0" ci="2" mb="0" cb="0"/><line nr="260" mi="0" ci="3" mb="0" cb="0"/><line nr="262" mi="0" ci="2" mb="0" cb="0"/><line nr="263" mi="0" ci="7" mb="0" cb="2"/><line nr="264" mi="4" ci="4" mb="2" cb="2"/><line nr="265" mi="0" ci="7" mb="0" cb="0"/><line nr="267" mi="0" ci="7" mb="0" cb="2"/><line nr="268" mi="4" ci="4" mb="2" cb="2"/><line nr="269" mi="0" ci="7" mb="0" cb="0"/><line nr="272" mi="0" ci="3" mb="0" cb="0"/><line nr="276" mi="0" ci="3" mb="0" cb="0"/><line nr="277" mi="0" ci="1" mb="0" cb="0"/><line nr="280" mi="0" ci="3" mb="0" cb="0"/><line nr="284" mi="0" ci="3" mb="0" cb="0"/><line nr="285" mi="0" ci="1" mb="0" cb="0"/><line nr="288" mi="0" ci="3" mb="0" cb="0"/><line nr="292" mi="0" ci="3" mb="0" cb="0"/><line nr="293" mi="0" ci="1" mb="0" cb="0"/><line nr="296" mi="0" ci="3" mb="0" cb="0"/><line nr="300" mi="0" ci="3" mb="0" cb="0"/><line nr="301" mi="0" ci="1" mb="0" cb="0"/><line nr="304" mi="0" ci="3" mb="0" cb="0"/><line nr="323" mi="0" ci="3" mb="0" cb="0"/><line nr="342" mi="0" ci="3" mb="0" cb="0"/><line nr="343" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="10" covered="257"/><counter type="BRANCH" missed="10" covered="36"/><counter type="LINE" missed="0" covered="69"/><counter type="COMPLEXITY" missed="10" covered="30"/><counter type="METHOD" missed="0" covered="17"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Md2Hash.java"><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="4" ci="0" mb="0" cb="0"/><line nr="44" mi="1" ci="0" mb="0" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="48" mi="1" ci="0" mb="0" cb="0"/><line nr="51" mi="6" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="4" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="SimpleHash.java"><line nr="70" mi="0" ci="6" mb="0" cb="0"/><line nr="75" mi="0" ci="6" mb="0" cb="0"/><line nr="92" mi="0" ci="2" mb="0" cb="0"/><line nr="93" mi="0" ci="3" mb="0" cb="0"/><line nr="94" mi="0" ci="3" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="117" mi="0" ci="6" mb="0" cb="0"/><line nr="118" mi="0" ci="1" mb="0" cb="0"/><line nr="139" mi="6" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="166" mi="0" ci="2" mb="0" cb="0"/><line nr="167" mi="0" ci="3" mb="1" cb="1"/><line nr="168" mi="5" ci="0" mb="0" cb="0"/><line nr="170" mi="0" ci="3" mb="0" cb="0"/><line nr="171" mi="0" ci="5" mb="0" cb="0"/><line nr="172" mi="0" ci="2" mb="0" cb="0"/><line nr="173" mi="0" ci="2" mb="0" cb="2"/><line nr="174" mi="0" ci="4" mb="0" cb="0"/><line nr="175" mi="0" ci="3" mb="0" cb="0"/><line nr="177" mi="0" ci="4" mb="0" cb="0"/><line nr="178" mi="0" ci="5" mb="0" cb="0"/><line nr="179" mi="0" ci="1" mb="0" cb="0"/><line nr="192" mi="0" ci="4" mb="0" cb="0"/><line nr="206" mi="0" ci="4" mb="0" cb="0"/><line nr="217" mi="0" ci="2" mb="1" cb="1"/><line nr="218" mi="2" ci="0" mb="0" cb="0"/><line nr="220" mi="0" ci="3" mb="0" cb="2"/><line nr="221" mi="0" ci="3" mb="0" cb="0"/><line nr="223" mi="0" ci="4" mb="0" cb="0"/><line nr="224" mi="0" ci="3" mb="0" cb="0"/><line nr="228" mi="0" ci="7" mb="0" cb="2"/><line nr="229" mi="0" ci="7" mb="0" cb="0"/><line nr="230" mi="0" ci="3" mb="0" cb="0"/><line nr="231" mi="0" ci="1" mb="0" cb="0"/><line nr="239" mi="0" ci="3" mb="0" cb="0"/><line nr="243" mi="0" ci="3" mb="0" cb="0"/><line nr="247" mi="0" ci="3" mb="0" cb="0"/><line nr="251" mi="0" ci="3" mb="0" cb="0"/><line nr="263" mi="0" ci="3" mb="0" cb="0"/><line nr="264" mi="0" ci="3" mb="0" cb="0"/><line nr="265" mi="0" ci="3" mb="0" cb="0"/><line nr="266" mi="0" ci="1" mb="0" cb="0"/><line nr="278" mi="0" ci="5" mb="0" cb="0"/><line nr="279" mi="0" ci="1" mb="0" cb="0"/><line nr="291" mi="0" ci="3" mb="0" cb="0"/><line nr="292" mi="0" ci="1" mb="0" cb="0"/><line nr="303" mi="0" ci="3" mb="0" cb="0"/><line nr="304" mi="1" ci="0" mb="0" cb="0"/><line nr="305" mi="11" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="0" cb="0"/><line nr="318" mi="6" ci="0" mb="0" cb="0"/><line nr="330" mi="6" ci="0" mb="0" cb="0"/><line nr="343" mi="0" ci="5" mb="0" cb="0"/><line nr="344" mi="0" ci="2" mb="0" cb="2"/><line nr="345" mi="0" ci="2" mb="0" cb="0"/><line nr="346" mi="0" ci="3" mb="0" cb="0"/><line nr="348" mi="0" ci="4" mb="0" cb="0"/><line nr="349" mi="0" ci="4" mb="0" cb="0"/><line nr="351" mi="0" ci="7" mb="0" cb="2"/><line nr="352" mi="0" ci="2" mb="0" cb="0"/><line nr="353" mi="0" ci="4" mb="0" cb="0"/><line nr="355" mi="0" ci="2" mb="0" cb="0"/><line nr="359" mi="11" ci="0" mb="4" cb="0"/><line nr="372" mi="0" ci="3" mb="0" cb="2"/><line nr="373" mi="0" ci="5" mb="0" cb="0"/><line nr="375" mi="0" ci="3" mb="0" cb="0"/><line nr="388" mi="0" ci="3" mb="0" cb="2"/><line nr="390" mi="0" ci="5" mb="0" cb="0"/><line nr="392" mi="0" ci="3" mb="0" cb="0"/><line nr="401" mi="3" ci="0" mb="0" cb="0"/><line nr="413" mi="0" ci="3" mb="1" cb="1"/><line nr="414" mi="0" ci="3" mb="0" cb="0"/><line nr="415" mi="0" ci="6" mb="0" cb="0"/><line nr="417" mi="2" ci="0" mb="0" cb="0"/><line nr="426" mi="7" ci="0" mb="4" cb="0"/><line nr="427" mi="2" ci="0" mb="0" cb="0"/><line nr="429" mi="4" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="73" covered="207"/><counter type="BRANCH" missed="11" covered="17"/><counter type="LINE" missed="15" covered="62"/><counter type="COMPLEXITY" missed="13" covered="26"/><counter type="METHOD" missed="6" covered="19"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Sha384Hash.java"><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="44" mi="1" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="1" ci="0" mb="0" cb="0"/><line nr="51" mi="5" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="6" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="4" ci="0" mb="0" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Md5Hash.java"><line nr="40" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="4" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="48" mi="5" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="6" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="4" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="58" mi="2" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="6" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Hash.java"/><sourcefile name="ConfigurableHashService.java"/><counter type="INSTRUCTION" missed="720" covered="567"/><counter type="BRANCH" missed="65" covered="55"/><counter type="LINE" missed="191" covered="166"/><counter type="COMPLEXITY" missed="97" covered="72"/><counter type="METHOD" missed="58" covered="51"/><counter type="CLASS" missed="5" covered="6"/></package><package name="org/apache/shiro/crypto/hash/format"><class name="org/apache/shiro/crypto/hash/format/ProvidedHashFormat" sourcefilename="ProvidedHashFormat.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/Class;)V" line="47"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getHashFormatClass" desc="()Ljava/lang/Class;" line="52"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="byId" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/format/ProvidedHashFormat;" line="56"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="28"><counter type="INSTRUCTION" missed="0" covered="37"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="60"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="13"/><counter type="COMPLEXITY" missed="0" covered="5"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/format/Base64Format" sourcefilename="Base64Format.java"><method name="&lt;init&gt;" desc="()V" line="30"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="format" desc="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line="39"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/format/ParsableHashFormat" sourcefilename="ParsableHashFormat.java"/><class name="org/apache/shiro/crypto/hash/format/HashFormat" sourcefilename="HashFormat.java"/><class name="org/apache/shiro/crypto/hash/format/HexFormat" sourcefilename="HexFormat.java"><method name="&lt;init&gt;" desc="()V" line="30"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="format" desc="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line="39"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/format/ModularCryptFormat" sourcefilename="ModularCryptFormat.java"/><class name="org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory" sourcefilename="DefaultHashFormatFactory.java"><method name="&lt;init&gt;" desc="()V" line="43"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getFormatClassNames" desc="()Ljava/util/Map;" line="66"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setFormatClassNames" desc="(Ljava/util/Map;)V" line="82"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getSearchPackages" desc="()Ljava/util/Set;" line="97"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setSearchPackages" desc="(Ljava/util/Set;)V" line="111"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getInstance" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/format/HashFormat;" line="115"><counter type="INSTRUCTION" missed="1" covered="51"/><counter type="BRANCH" missed="3" covered="11"/><counter type="LINE" missed="0" covered="15"/><counter type="COMPLEXITY" missed="3" covered="5"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getHashFormatClass" desc="(Ljava/lang/String;)Ljava/lang/Class;" line="184"><counter type="INSTRUCTION" missed="0" covered="65"/><counter type="BRANCH" missed="2" covered="18"/><counter type="LINE" missed="0" covered="21"/><counter type="COMPLEXITY" missed="2" covered="9"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getHashFormatClass" desc="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" line="282"><counter type="INSTRUCTION" missed="2" covered="155"/><counter type="BRANCH" missed="5" covered="13"/><counter type="LINE" missed="0" covered="29"/><counter type="COMPLEXITY" missed="5" covered="5"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lookupHashFormatClass" desc="(Ljava/lang/String;)Ljava/lang/Class;" line="335"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="assertHashFormatImpl" desc="(Ljava/lang/Class;)V" line="343"><counter type="INSTRUCTION" missed="0" covered="28"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="newHashFormatInstance" desc="(Ljava/lang/Class;)Lorg/apache/shiro/crypto/hash/format/HashFormat;" line="351"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="339"/><counter type="BRANCH" missed="11" covered="45"/><counter type="LINE" missed="0" covered="84"/><counter type="COMPLEXITY" missed="11" covered="28"/><counter type="METHOD" missed="0" covered="11"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/format/Shiro1CryptFormat" sourcefilename="Shiro1CryptFormat.java"><method name="&lt;init&gt;" desc="()V" line="93"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getId" desc="()Ljava/lang/String;" line="97"><counter type="INSTRUCTION" missed="0" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="format" desc="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parse" desc="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Hash;" line="121"><counter type="INSTRUCTION" missed="0" covered="100"/><counter type="BRANCH" missed="0" covered="8"/><counter type="LINE" missed="0" covered="28"/><counter type="COMPLEXITY" missed="0" covered="5"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="150"/><counter type="BRANCH" missed="0" covered="12"/><counter type="LINE" missed="0" covered="42"/><counter type="COMPLEXITY" missed="0" covered="10"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/shiro/crypto/hash/format/HashFormatFactory" sourcefilename="HashFormatFactory.java"/><sourcefile name="DefaultHashFormatFactory.java"><line nr="43" mi="0" ci="2" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="82" mi="0" ci="3" mb="0" cb="0"/><line nr="83" mi="0" ci="1" mb="0" cb="0"/><line nr="97" mi="0" ci="3" mb="0" cb="0"/><line nr="111" mi="0" ci="3" mb="0" cb="0"/><line nr="112" mi="0" ci="1" mb="0" cb="0"/><line nr="115" mi="0" ci="2" mb="0" cb="2"/><line nr="116" mi="0" ci="2" mb="0" cb="0"/><line nr="119" mi="0" ci="2" mb="0" cb="0"/><line nr="120" mi="0" ci="2" mb="0" cb="0"/><line nr="125" mi="0" ci="4" mb="0" cb="2"/><line nr="128" mi="0" ci="5" mb="0" cb="0"/><line nr="129" mi="0" ci="4" mb="0" cb="0"/><line nr="131" mi="1" ci="10" mb="2" cb="2"/><line nr="132" mi="0" ci="2" mb="1" cb="1"/><line nr="134" mi="0" ci="4" mb="0" cb="0"/><line nr="138" mi="0" ci="2" mb="0" cb="2"/><line nr="140" mi="0" ci="4" mb="0" cb="0"/><line nr="143" mi="0" ci="2" mb="0" cb="2"/><line nr="145" mi="0" ci="4" mb="0" cb="0"/><line nr="148" mi="0" ci="2" mb="0" cb="0"/><line nr="184" mi="0" ci="2" mb="0" cb="0"/><line nr="188" mi="0" ci="3" mb="1" cb="1"/><line nr="189" mi="0" ci="6" mb="0" cb="0"/><line nr="190" mi="0" ci="2" mb="0" cb="2"/><line nr="192" mi="0" ci="4" mb="0" cb="0"/><line nr="197" mi="0" ci="2" mb="0" cb="2"/><line nr="198" mi="0" ci="3" mb="0" cb="0"/><line nr="199" mi="0" ci="2" mb="0" cb="2"/><line nr="200" mi="0" ci="3" mb="0" cb="0"/><line nr="204" mi="0" ci="2" mb="0" cb="2"/><line nr="206" mi="0" ci="4" mb="0" cb="0"/><line nr="209" mi="0" ci="2" mb="0" cb="2"/><line nr="211" mi="0" ci="3" mb="1" cb="1"/><line nr="212" mi="0" ci="11" mb="0" cb="2"/><line nr="213" mi="0" ci="5" mb="0" cb="0"/><line nr="214" mi="0" ci="2" mb="0" cb="2"/><line nr="216" mi="0" ci="1" mb="0" cb="0"/><line nr="218" mi="0" ci="1" mb="0" cb="0"/><line nr="222" mi="0" ci="2" mb="0" cb="2"/><line nr="223" mi="0" ci="3" mb="0" cb="0"/><line nr="226" mi="0" ci="2" mb="0" cb="0"/><line nr="282" mi="0" ci="2" mb="0" cb="0"/><line nr="283" mi="0" ci="2" mb="0" cb="0"/><line nr="284" mi="2" ci="4" mb="1" cb="1"/><line nr="287" mi="0" ci="4" mb="0" cb="0"/><line nr="289" mi="0" ci="2" mb="1" cb="1"/><line nr="290" mi="0" ci="11" mb="0" cb="0"/><line nr="291" mi="0" ci="4" mb="0" cb="0"/><line nr="294" mi="0" ci="2" mb="1" cb="1"/><line nr="295" mi="0" ci="14" mb="0" cb="0"/><line nr="296" mi="0" ci="4" mb="0" cb="0"/><line nr="299" mi="0" ci="2" mb="1" cb="1"/><line nr="300" mi="0" ci="13" mb="0" cb="0"/><line nr="301" mi="0" ci="4" mb="0" cb="0"/><line nr="304" mi="0" ci="2" mb="1" cb="1"/><line nr="305" mi="0" ci="14" mb="0" cb="0"/><line nr="306" mi="0" ci="4" mb="0" cb="0"/><line nr="309" mi="0" ci="2" mb="0" cb="2"/><line nr="310" mi="0" ci="13" mb="0" cb="0"/><line nr="311" mi="0" ci="4" mb="0" cb="0"/><line nr="314" mi="0" ci="2" mb="0" cb="2"/><line nr="315" mi="0" ci="14" mb="0" cb="0"/><line nr="316" mi="0" ci="4" mb="0" cb="0"/><line nr="319" mi="0" ci="2" mb="0" cb="2"/><line nr="320" mi="0" ci="13" mb="0" cb="0"/><line nr="321" mi="0" ci="4" mb="0" cb="0"/><line nr="324" mi="0" ci="2" mb="0" cb="2"/><line nr="325" mi="0" ci="2" mb="0" cb="0"/><line nr="328" mi="0" ci="3" mb="0" cb="0"/><line nr="330" mi="0" ci="2" mb="0" cb="0"/><line nr="335" mi="0" ci="3" mb="0" cb="0"/><line nr="336" mi="0" ci="1" mb="0" cb="0"/><line nr="339" mi="0" ci="2" mb="0" cb="0"/><line nr="343" mi="0" ci="7" mb="1" cb="3"/><line nr="344" mi="0" ci="13" mb="0" cb="0"/><line nr="345" mi="0" ci="7" mb="0" cb="0"/><line nr="348" mi="0" ci="1" mb="0" cb="0"/><line nr="351" mi="0" ci="3" mb="0" cb="0"/><line nr="352" mi="0" ci="4" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="339"/><counter type="BRANCH" missed="11" covered="45"/><counter type="LINE" missed="0" covered="84"/><counter type="COMPLEXITY" missed="11" covered="28"/><counter type="METHOD" missed="0" covered="11"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="HexFormat.java"><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="39" mi="0" ci="7" mb="0" cb="2"/><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Base64Format.java"><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="39" mi="0" ci="7" mb="0" cb="2"/><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="ModularCryptFormat.java"/><sourcefile name="HashFormat.java"/><sourcefile name="Shiro1CryptFormat.java"><line nr="93" mi="0" ci="2" mb="0" cb="0"/><line nr="94" mi="0" ci="1" mb="0" cb="0"/><line nr="97" mi="0" ci="2" mb="0" cb="0"/><line nr="101" mi="0" ci="2" mb="0" cb="2"/><line nr="102" mi="0" ci="2" mb="0" cb="0"/><line nr="105" mi="0" ci="3" mb="0" cb="0"/><line nr="106" mi="0" ci="3" mb="0" cb="0"/><line nr="107" mi="0" ci="3" mb="0" cb="0"/><line nr="108" mi="0" ci="13" mb="0" cb="0"/><line nr="110" mi="0" ci="2" mb="0" cb="2"/><line nr="111" mi="0" ci="5" mb="0" cb="0"/><line nr="114" mi="0" ci="4" mb="0" cb="0"/><line nr="115" mi="0" ci="5" mb="0" cb="0"/><line nr="117" mi="0" ci="3" mb="0" cb="0"/><line nr="121" mi="0" ci="2" mb="0" cb="2"/><line nr="122" mi="0" ci="2" mb="0" cb="0"/><line nr="124" mi="0" ci="4" mb="0" cb="2"/><line nr="126" mi="0" ci="2" mb="0" cb="0"/><line nr="127" mi="0" ci="5" mb="0" cb="0"/><line nr="130" mi="0" ci="5" mb="0" cb="0"/><line nr="131" mi="0" ci="4" mb="0" cb="0"/><line nr="134" mi="0" ci="5" mb="0" cb="0"/><line nr="135" mi="0" ci="5" mb="0" cb="0"/><line nr="137" mi="0" ci="5" mb="0" cb="0"/><line nr="138" mi="0" ci="5" mb="0" cb="0"/><line nr="139" mi="0" ci="4" mb="0" cb="0"/><line nr="141" mi="0" ci="3" mb="0" cb="0"/><line nr="142" mi="0" ci="2" mb="0" cb="0"/><line nr="144" mi="0" ci="3" mb="0" cb="2"/><line nr="145" mi="0" ci="3" mb="0" cb="0"/><line nr="146" mi="0" ci="3" mb="0" cb="0"/><line nr="151" mi="0" ci="3" mb="0" cb="0"/><line nr="152" mi="0" ci="1" mb="0" cb="0"/><line nr="153" mi="0" ci="9" mb="0" cb="0"/><line nr="154" mi="0" ci="6" mb="0" cb="0"/><line nr="155" mi="0" ci="1" mb="0" cb="0"/><line nr="157" mi="0" ci="5" mb="0" cb="0"/><line nr="158" mi="0" ci="3" mb="0" cb="0"/><line nr="159" mi="0" ci="2" mb="0" cb="2"/><line nr="160" mi="0" ci="3" mb="0" cb="0"/><line nr="162" mi="0" ci="3" mb="0" cb="0"/><line nr="164" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="150"/><counter type="BRANCH" missed="0" covered="12"/><counter type="LINE" missed="0" covered="42"/><counter type="COMPLEXITY" missed="0" covered="10"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="HashFormatFactory.java"/><sourcefile name="ProvidedHashFormat.java"><line nr="28" mi="0" ci="16" mb="0" cb="0"/><line nr="33" mi="0" ci="7" mb="0" cb="0"/><line nr="38" mi="0" ci="7" mb="0" cb="0"/><line nr="43" mi="0" ci="7" mb="0" cb="0"/><line nr="47" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="3" mb="0" cb="0"/><line nr="49" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="3" mb="0" cb="0"/><line nr="56" mi="0" ci="2" mb="0" cb="2"/><line nr="57" mi="0" ci="2" mb="0" cb="0"/><line nr="62" mi="0" ci="5" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="64" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="60"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="13"/><counter type="COMPLEXITY" missed="0" covered="5"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="ParsableHashFormat.java"/><counter type="INSTRUCTION" missed="3" covered="569"/><counter type="BRANCH" missed="11" covered="63"/><counter type="LINE" missed="0" covered="143"/><counter type="COMPLEXITY" missed="11" covered="49"/><counter type="METHOD" missed="0" covered="23"/><counter type="CLASS" missed="0" covered="5"/></package><counter type="INSTRUCTION" missed="723" covered="1136"/><counter type="BRANCH" missed="76" covered="118"/><counter type="LINE" missed="191" covered="309"/><counter type="COMPLEXITY" missed="108" covered="121"/><counter type="METHOD" missed="58" covered="74"/><counter type="CLASS" missed="5" covered="11"/></report>