cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
_--_-___m_--_-__-
Participant
Participant
774 Views
Registered: ‎12-04-2019

IEEE-1735-2014 v2 - Generate Key?

Jump to solution

Is there a note about how to generate keys for encrypting IP?

0 Kudos
Reply
1 Solution

Accepted Solutions
EajksEajks
Participant
Participant
515 Views
Registered: ‎11-21-2020

If you want to your code to be read by a specific design tool, you have to encode it using its public key. For Vivado it's the one found in the installation directory. For other tools you can find the key either in the documentation or in the installation directory. If your design flow uses several EDA vendors, you can encrypt your files with all required pub keys.

Therefore if you encrypt it only for use with Vivado -> use the Vivado key. It makes no sense to use another one. Vivado must be able to decrypt your file anyway. If you target different uses of your file (ie outside Vivado) encrypt with the Vivado key and your own key.

 

View solution in original post

0 Kudos
Reply
5 Replies
hongh
Moderator
Moderator
720 Views
Registered: ‎11-04-2010

You can just use the key file in the Vivado's installation dir:

Ex: .\Vivado\2019.2\data\pubkey

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Reply
_--_-___m_--_-__-
Participant
Participant
662 Views
Registered: ‎12-04-2019

That doesn't make sense to me - I'd want to control both the public key as well as the private key.

I need to be able to generate a public/private key pair (either with PuttyGen or ssh-keygen) and then utilize them to encrypt the IP.

 

0 Kudos
Reply
_--_-___m_--_-__-
Participant
Participant
647 Views
Registered: ‎12-04-2019
I used the following command:

openssl genrsa –out some_key_name.pem 2048



Then I extracted the public key:

Openssl rsa –in some_key_name.pem -pubout > some_key_name.pub



Then I placed the pasted the public keyfile into the example keyfile_vhd.txt, and launched an encryption run:

encrypt -key /path/to/keyfile -lang vhdl -ext .vhdpp /path/to/source

So that looks like I can create the encrypted file (hooray!) however when I try to add it to the Vivado project, I get a syntax error on the file and Vivado can’t seem to parse it.

I must be doing something wrong.
0 Kudos
Reply
EajksEajks
Participant
Participant
516 Views
Registered: ‎11-21-2020

If you want to your code to be read by a specific design tool, you have to encode it using its public key. For Vivado it's the one found in the installation directory. For other tools you can find the key either in the documentation or in the installation directory. If your design flow uses several EDA vendors, you can encrypt your files with all required pub keys.

Therefore if you encrypt it only for use with Vivado -> use the Vivado key. It makes no sense to use another one. Vivado must be able to decrypt your file anyway. If you target different uses of your file (ie outside Vivado) encrypt with the Vivado key and your own key.

 

View solution in original post

0 Kudos
Reply
_--_-___m_--_-__-
Participant
Participant
311 Views
Registered: ‎12-04-2019

I thought it would be possible to provide a customer a key, which they could use, then access to the key could be controlled as well. 

It does not look like that's the case; this is the best we can do with IEEE-1735 (barring a new revision and tool support, of course).

0 Kudos
Reply