content: package im.actor.runtime.crypto;
  
  import im.actor.runtime.Crypto;
  import im.actor.runtime.crypto.primitives.digest.CombinedHash;
  import im.actor.runtime.crypto.primitives.digest.SHA512;
  import im.actor.runtime.crypto.primitives.hmac.HMAC;
  import im.actor.runtime.crypto.primitives.prf.PRF;
  import im.actor.runtime.crypto.primitives.streebog.Streebog256;
  import im.actor.runtime.crypto.primitives.streebog.Streebog512;
  
  // Disabling Bounds checks for speeding up calculations
  
  /*-[
  #define J2OBJC_DISABLE_ARRAY_BOUND_CHECKS 1
  ]-*/
  
  public final class Cryptos {
  
      public static HMAC HMAC_SHA256(byte[] secret) {
          return new HMAC(secret, Crypto.createSHA256());
      }
  
      public static HMAC HMAC_SHA512(byte[] secret) {
          return new HMAC(secret, new SHA512());
      }
  
      public static PRF PRF_SHA256() {
          return new PRF(Crypto.createSHA256());
      }
  
      public static PRF PRF_SHA512() {
          return new PRF(new SHA512());
      }
  
      public static PRF PRF_STREEBOG256() {
          return new PRF(new Streebog256());
      }
  
      public static PRF PRF_STREEBOG512() {
          return new PRF(new Streebog512());
      }
  
      public static PRF PRF_SHA_STREEBOG_256() {
          return new PRF(new CombinedHash(new Digest[]{
                  Crypto.createSHA256(),
                  new Streebog256()
          }));
      }
  
      private Cryptos() {
  
      }
  }
  