protected static ClientKeyBlock innerEncode( RandomSource random, FreenetURI uri, Bucket sourceData, boolean isMetadata, short compressionCodec, int sourceLength, String compressorDescriptor) throws InsertException, CHKEncodeException, IOException, SSKEncodeException, MalformedURLException, InvalidCompressionCodecException { String uriType = uri.getKeyType(); if (uriType.equals("CHK")) { return ClientCHKBlock.encode( sourceData, isMetadata, compressionCodec == -1, compressionCodec, sourceLength, compressorDescriptor); } else if (uriType.equals("SSK") || uriType.equals("KSK")) { InsertableClientSSK ik = InsertableClientSSK.create(uri); return ik.encode( sourceData, isMetadata, compressionCodec == -1, compressionCodec, sourceLength, random, compressorDescriptor); } else { throw new InsertException(InsertException.INVALID_URI, "Unknown keytype " + uriType, null); } }