Ejemplo n.º 1
0
u32 GetCertSize(u8 *cert)
{
	u32 sign_size = 0;
	u32 sign_padlen = 0;
	GetCertSigSectionSizes(&sign_size,&sign_padlen,cert);
	if(!sign_size || !sign_padlen)
		return 0;

	return sizeof(u32) + sign_size + sign_padlen + sizeof(cert_hdr) + GetCertPubkSectionSize(GetCertPubkType(cert));
}
Ejemplo n.º 2
0
bool VerifyCert(u8 *cert, u8 *pubk)
{
	if(!GetCertHdr(cert)) 
		return false;
	u8 *signature = (cert+sizeof(u32));
	u8 *data = (u8*)GetCertHdr(cert);
	u32 datasize = sizeof(cert_hdr) + GetCertPubkSectionSize(GetCertPubkType(cert));

	return RsaSignVerify(data,datasize,signature,pubk,NULL,u8_to_u32(cert,BE),CTR_RSA_VERIFY);
}
Ejemplo n.º 3
0
u32 GetCertSize(u8 *cert)
{
	u32 SigSize = 0;
	u32 SigPadding = 0;
	GetCertSigSectionSizes(&SigSize,&SigPadding,cert);
	if(!SigSize || !SigPadding) return 0;

	Cert_Struct *certcore = (Cert_Struct*)(cert+4+SigSize+SigPadding);

	u32 PubKSectionSize = GetCertPubkSectionSize((pubk_types)u8_to_u32(certcore->KeyType,BE));

	return (4+SigSize+SigPadding+sizeof(Cert_Struct)+PubKSectionSize);
}
Ejemplo n.º 4
0
bool VerifyCert(u8 *cert, u8 *pubk)
{
	u32 SigSize = 0;
	u32 SigPadding = 0;
	GetCertSigSectionSizes(&SigSize,&SigPadding,cert);
	if(!SigSize || !SigPadding) return 0;


	u8 *signature = (cert+4);
	u8 *data = (cert+4+SigSize+SigPadding);
	u32 datasize = sizeof(Cert_Struct) + GetCertPubkSectionSize(GetCertPubkType(cert));

	int result = ctr_sig(data,datasize,signature,pubk,NULL,u8_to_u32(cert,BE),CTR_RSA_VERIFY);

	if(result == 0) return true;
	else return false;
}