the token server accepts an x-client-state header , which is the lowercase-hex-encoded first 16 bytes of the sha-256 hash of the bytes of kb . concode_field_sep int HASH_LENGTH_HEX concode_elem_sep int CRYPTO_KEY_LENGTH_BYTES concode_elem_sep int SALT_LENGTH_HEX concode_elem_sep int NUMBER_OF_QUICK_STRETCH_ROUNDS concode_elem_sep String KW_VERSION_STRING concode_elem_sep int CRYPTO_KEY_LENGTH_HEX concode_elem_sep String LOG_TAG concode_elem_sep int SALT_LENGTH_BYTES concode_elem_sep int HASH_LENGTH_BYTES concode_field_sep byte[] unwrapkB concode_elem_sep String getAudienceForURL concode_elem_sep BigInteger srpVerifierLowercaseX concode_elem_sep String hexModN concode_elem_sep String bytes concode_elem_sep BigInteger srpVerifierLowercaseV concode_elem_sep byte[] generateUnwrapBKey concode_elem_sep KeyBundle generateSyncKeyBundle concode_elem_sep byte[] generateQuickStretchedPW concode_elem_sep byte[] KWE concode_elem_sep byte[] generateAuthPW concode_elem_sep byte[] KW
String function ( byte [ ] arg0 ) { if ( arg0 == null || arg0 . length != 32 ) { throw new IllegalArgumentException ( "srini_string" ) ; } byte [ ] loc0 = Utils . loc0 ( arg0 ) ; byte [ ] loc1 = new byte [ 16 ] ; System . arraycopy ( loc0 , 0 , loc1 , 0 , 16 ) ; return Utils . byte2Hex ( loc1 ) ; }