From: dwerdna on
Hi All

I'm looking into the IP encryption that VHDL-2008 now offer's to use
on our code. I've got the latest Ashenden book which has a small
chapter on it, but was after other reference material and even
working
examples.


My main query centers around how do you encrypt the code. Are there
3rd party tools? Modelsim PE does it, but assuming that I need to
encrypt for Xilinx, Synplify, Altera(?), and even particular
customers
as well is Modelsim the best choice. It also seems funny that you
need to run a simulator to encrypt source code.


Also the session key for the assymetic encryption seems to be
recorded
into the file only when I'm using a digital envelope (and then
hopefully it is encrypted). Does it make sense that it does not need
to be recorded if you are not using a digital envelope?


I also seem to be having issues using Modelsim's public key to
encrypt
the session key. In not including it in the code it appears to
encrypt appropritely.


Any help/suggestions would be great


Andrew


My protect code is as follows:


`protect key_keyowner = "Mentor Graphics Corporation"
`protect key_method = "rsa"
`protect key_keyname = "MGC-VERIF-SIM-RSA-1"
-- `protect key_public_key
-- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnJfQb
+LLzTMX3NRARsv7A8+LV5SgMEJCvI
-- f9Tif2emi4z0qtp8E+nX7QFzocTlClC6Dcq2qIvEJcpqUgTTD+mJ6grJSJ
+R4AxxCgvHYUwoT
-- 80Xs0QgRqkrGYxW1RUnNBcJm4ZULexYz8972Oj6rQ99n5e1kDa/
eBcszMJyOkcGQIDAQAB
`protect key_block
`protect data_method = "aes128-cbc"
`protect encoding = (enctype = "base64")
`protect author = "IP Provider"
`protect author_info = "Widget 5 version 3.2"
`protect begin
::::
::::
`protect end


Generated file from Modelsim:


`protect BEGIN_PROTECTED
`protect encrypt_agent = "Model Technology", encrypt_agent_info =
"6.5d"
`protect key_keyowner = "Mentor Graphics Corporation" , key_keyname =
"MGC-VERIF-SIM-RSA-1" , key_method = "rsa"
`protect encoding = ( enctype = "base64" )
`protect KEY_BLOCK
B3fAWX5ctfzZv7uO7JWDm8Zcg8uldFm4KpvG7JKaLjQffxULilmf0g4V111d4hxX
K9DzyWhJJL+mJj00qs5molQQkKKUfW6oAkb2K1kcN1wPaWAZwRcZH8lOF/mOw4Xj
Pc5529GuFsyEIb8HgjIf4w+qKDb0UGtbmmFbyYl06HA=
`protect data_method = "aes128-cbc"
`protect encoding = ( enctype = "base64" , bytes = 1770 )
`protect DATA_BLOCK
::::::
::::::
`protect END_PROTECTED