package Ġcom . github . bad ou aly . telegram . m tp roto . auth Ċ Ċ import Ġcom . github . bad ou aly . telegram . m tp roto . secure . Crypto Utils Ċ import Ġjava . math . BigInteger Ċ import Ġjava . nio . ByteBuffer Ċ Ċ open Ġclass ĠAuth Key ( val Ġkey : ĠByteArray ) Ġ{ ĊĊĠĠĠ Ġconstructor ( key : ĠByteBuffer ) Ġ: Ġthis ( key . array ()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( key . size Ġ!= Ġ 2 5 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Auth Key Ġmust Ġbe Ġ 2 5 6 ĠBytes Ġfound Ġ${ key . size } Ġbytes ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġsee Ġhttps :// core . telegram . org / m tp roto / description # key - identifier ĊĠĠĠ Ġ// ĠSHA 1 Ġgenerates Ġ 2 0 Ġbytes Ġlong Ġhash , Ġauth KeyId Ġis Ġthe Ġlower Ġ 8 Ġbytes ĊĠĠĠ Ġval Ġkey Id Ġ= ĠCrypto Utils . substring ( Crypto Utils . SHA 1 ( key ), Ġ 1 2 , Ġ 8 ) ĊĊĠĠĠ Ġfun Ġget KeyId As Long () Ġ= ĠBigInteger ( key Id ). longValue Exact () Ċ } Ċ Ċ class ĠTemp Auth Key ( key : ĠByteArray , Ġval Ġexpires At : ĠInt ) Ġ: ĠAuth Key ( key )