package Ġde . r ki . cor on aw arn app . covid certificate . common . crypto graphy Ċ Ċ import Ġjavax . crypto . Cipher Ċ import Ġjavax . crypto . spec . Iv Parameter Spec Ċ import Ġjavax . crypto . spec . SecretKey Spec Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠA es Cryptography Ġ@ Inject Ġconstructor () Ġ{ ĊĊĠĠĠ Ġfun Ġdecrypt ( ĊĠĠĠĠĠĠĠ Ġkey : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġencrypted Data : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġiv : ĠI v Parameter Spec ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠByteArray Ġ= Ġwith ( Cipher . getInstance ( TRANS FORMATION )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Spec Ġ= ĠSecret KeySpec ( key , ĠAL G ORITHM ) ĊĠĠĠĠĠĠĠ Ġval Ġiv Parameter Spec Ġ= Ġiv Ġ?: Ġdefault Iv Parameter Spec ĊĠĠĠĠĠĠĠ Ġinit ( Cipher . DE CRYPT _ MODE , Ġkey Spec , Ġiv Parameter Spec ) ĊĠĠĠĠĠĠĠ Ġdo Final ( encrypted Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencrypt ( ĊĠĠĠĠĠĠĠ Ġkey : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġdata : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġiv : ĠI v Parameter Spec ? Ġ= Ġnull , ĊĠĠĠ Ġ): ĠByteArray Ġ= Ġwith ( Cipher . getInstance ( TRANS FORMATION )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Spec Ġ= ĠSecret KeySpec ( key , ĠAL G ORITHM ) ĊĠĠĠĠĠĠĠ Ġval Ġiv Parameter Spec Ġ= Ġiv Ġ?: Ġdefault Iv Parameter Spec ĊĠĠĠĠĠĠĠ Ġinit ( Cipher . ENCRYPT _ MODE , Ġkey Spec , Ġiv Parameter Spec ) ĊĠĠĠĠĠĠĠ Ġdo Final ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdefault Iv Parameter Spec ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠI v Parameter Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArray ( 1 6 ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ Ċ private Ġconst Ġval ĠAL G ORITHM Ġ= Ġ" AES " Ċ private Ġconst Ġval ĠTRANS FORMATION Ġ= Ġ" AES / CBC / PKCS 5 Padding " Ċ