Skip to main content

Info regarding online.crt , online.sig

5 replies [Last post]
colombus
Offline
Joined: 2010-08-08
Points: 0

Hi

I am new to BD-J development I want to know what certificate is being used in online.crt

Is it a x509certificate because I am not very clear about how to verify the online.crt & online.sig file in the player.

Any information will be great
thanks in advance

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joe Rice

It's a special format defined in the BD-ROM spec. The online.sig file is a signed hash of the app.discroot.crt and non-signature elements of the online.sig file, signed with the private key associated with the online.crt. (Both private key and online.crt are issued by the BDA license office) The player verifies online.sig using the public key in online.crt and verifies the signature of the owner public key in online.crt with the BDA public key that's embedded in the player.

Joe

On Oct 4, 2010, at 3:35 AM, bd-j-dev@mobileandembedded.org wrote:

> Hi
>
> I am new to BD-J development I want to know what certificate is being used in online.crt
>
> Is it a x509certificate because I am not very clear about how to verify the online.crt & online.sig file in the player.
>
> Any information will be great
> thanks in advance
> [Message sent by forum member 'colombus']
>
> http://forums.java.net/jive/thread.jspa?messageID=484252
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
> For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net

colombus
Offline
Joined: 2010-08-08
Points: 0

Hi

Thanks for the replies I solved it . I was able to generate the public keys .

colombus
Offline
Joined: 2010-08-08
Points: 0

Hi

Just wanted to know how to decrypt online.crt file

colombus
Offline
Joined: 2010-08-08
Points: 0

>It's a special format defined in the BD-ROM spec. The online.sig file is a
>signed hash of the app.discroot.crt and non-signature elements of the online.sig
>file, signed with the private key associated with the online.crt. (Both private
>key and online.crt are issued by the BDA license office) The player verifies
>online.sig using the public key in online.crt and verifies the signature of the
>owner public key in online.crt with the BDA public key that's embedded in the
>player.

Hi Joe

Thanks for the reply I have the BD-ROM spec and I understood the semantics defined in BD-ROM spec.
For verifying the Online Signature field in online.sig I need to get the content owners public key in online.crt for generating that shud i use some tool or i can read those bytes[256] and convert it to a public key for verification ??

The player verifies online.sig using the public key in online.crt and [b]verifies the[/b] [b]signature of the owner public key in online.crt with the BDA public key[/b] that's embedded in the player.
The sentence in bold i didn.t understand. Sorry for the inconvenience this section is new for me.

colombus
Offline
Joined: 2010-08-08
Points: 0

I used the code as given below but this code is giving me a negative modulus value

byte[] dataPub = new byte[256]; // size of the public key
try {

byteArrayInputStream.read(dataPub);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

BigInteger modulus = new BigInteger(dataPub);
BigInteger exponent = new BigInteger("65537"); // specified in the document
RSAPublicKeySpec rpks = new RSAPublicKeySpec(modulus, exponent);
KeyFactory kf = null;
try {
kf = KeyFactory.getInstance("RSA");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
pk = kf.generatePublic(rpks);
System.out.println("Pb Key----------------:"+pk.toString());
} catch (InvalidKeySpecException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Please correct me if I am wrong