package net.minecraft.network.login.client;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.SecretKey;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.login.INetHandlerLoginServer;
import net.minecraft.util.CryptManager;
public class C01PacketEncryptionResponse extends Packet
{
private byte[] field_149302_a = new byte[0];
private byte[] field_149301_b = new byte[0];
private static final String __OBFID = "CL_00001380";
public C01PacketEncryptionResponse() {}
@SideOnly(Side.CLIENT)
public C01PacketEncryptionResponse(SecretKey p_i45271_1_, PublicKey p_i45271_2_, byte[] p_i45271_3_)
{
this.field_149302_a = CryptManager.encryptData(p_i45271_2_, p_i45271_1_.getEncoded());
this.field_149301_b = CryptManager.encryptData(p_i45271_2_, p_i45271_3_);
}
/**
* Reads the raw packet data from the data stream.
*/
public void readPacketData(PacketBuffer data) throws IOException
{
this.field_149302_a = readBlob(data);
this.field_149301_b = readBlob(data);
}
/**
* Writes the raw packet data to the data stream.
*/
public void writePacketData(PacketBuffer data) throws IOException
{
writeBlob(data, this.field_149302_a);
writeBlob(data, this.field_149301_b);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandlerLoginServer handler)
{
handler.processEncryptionResponse(this);
}
public SecretKey func_149300_a(PrivateKey key)
{
return CryptManager.decryptSharedKey(key, this.field_149302_a);
}
public byte[] func_149299_b(PrivateKey p_149299_1_)
{
return p_149299_1_ == null ? this.field_149301_b : CryptManager.decryptData(p_149299_1_, this.field_149301_b);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandler handler)
{
this.processPacket((INetHandlerLoginServer)handler);
}
}