Skip to content
This repository has been archived by the owner on May 3, 2023. It is now read-only.

VC_HC_CWT_NO_ISS at DCC Result #27

Open
juergenroesch opened this issue Jul 14, 2021 · 15 comments
Open

VC_HC_CWT_NO_ISS at DCC Result #27

juergenroesch opened this issue Jul 14, 2021 · 15 comments
Assignees
Labels
bug Something isn't working

Comments

@juergenroesch
Copy link

my hex is:

846A5369676E61747572653143A1012640590115A401624445041A60F1F9A5061A60EF56A5390103A101A4617481A9626369782955524E3A555643493A56313A44453A49495938423657513938344A4A3849554C304838564B5255444E62636F62444562697374526F62657274204B6F63682D496E737469747574626D61643133333362736374323032312D30372D31345431383A31383A30345A627463744A75657267656E7320546573747A656E7472756D62746769383430353339303036627472693236303431353030306274746A4C503231373139382D3363646F626A313938302D30312D3031636E616DA462666E6A4D75737465726D616E6E62676E654572696B6163666E746A4D55535445524D414E4E63676E74654552494B416376657265312E332E30

what is the CBOR:
{1: "DE", 4: 1626470821, 6: 1626298021, -260: {1: {"t": [{"ci": "URN:UVCI:V1:DE:IIY8B6WQ984JJ8IUL0H8VKRUDN", "co": "DE", "is": "Robert Koch-Institut", "ma": "1333", "sc": "2021-07-14T18:18:04Z", "tc": "Juergens Testzentrum", "tg": "840539006", "tr": "260415000", "tt": "LP217198-3"}], "dob": "1980-01-01", "nam": {"fn": "Mustermann", "gn": "Erika", "fnt": "MUSTERMANN", "gnt": "ERIKA"}, "ver": "1.3.0"}}}

If I send that to the WRU-Server i get valid response but if I check that on the IOS Testflight App I get the error "Dieser QR-Code ist kein gültiges Impfzertifikat (VC_HC_CWT_NO_ISS)".

For my understanding, Encryption and everything is fine but there might be a error in the DCC because the app tries to use that as a Vaccine-certifiate instead of a DCC?

Any hints?

@juergenroesch juergenroesch added the bug Something isn't working label Jul 14, 2021
@hmontazeri
Copy link

Same issue here

@juergenroesch
Copy link
Author

i think, the problem is the encryption and a very bad documentation.
for the sha256 hash you need to use the cbor with the Signature1.... but encrypted will be the hcert container with 1:DE...
But then, if I use a online aes encrypter i get an RSA decryption error on the phone, and with my C#-Class i get the ISS-Error.

anyhow, I never got that working since days even with online encryption and so on... that's really horrible...

@hmontazeri
Copy link

hmontazeri commented Jul 15, 2021

@juergenroesch I'm not sure about that. I tried to encrypt a random string instead of the CBOR object inside the AES function. Then I got a new ERR Code VC_HC_CBOR_DECODING_FAILED which tells me that the encryption should be fine.

I'm guessing its some kind of encoding issue... not sure but UTF-8 and ASCII-8BIT seems to be an issue with the hex dumps of CBOR

image

@Ein-Tim
Copy link
Contributor

Ein-Tim commented Jul 15, 2021

Which version of the iOS app are you using btw? Version 2.6.0.3?

@juergenroesch
Copy link
Author

2.4.0 (12) - i dont get a newer one from the TestFlight

@hmontazeri
Copy link

Which version of the iOS app are you using btw? Version 2.6.0.3?

2.4.0 latest on testflight

@Ein-Tim
Copy link
Contributor

Ein-Tim commented Jul 15, 2021

Mh, that's strange. We are on 2.5.1 released and version 2.6 is in development. But no idea what exactly TestFlight is used for here, I don't have access, but IHMO it's strange that you're not even on a pre-release version of 2.5...

Anyways I don't think version 2.5 would fix your issue, didn't see a PR for this.

@hmontazeri
Copy link

It has to be something on the server side. The lab simulator python script here works. So... Is there any way we can get in touch with the server team on that? To be at least sure if the problem is caused by encryption or not?

@Ein-Tim
Copy link
Contributor

Ein-Tim commented Jul 15, 2021

@hmontazeri

@daniel-eder already assigned @MartinKonrad to this issue, so I'm sure you'll get feedback soon.

@dsarkar Do you want to mirror this to JIRA? Maybe EXPOSUREBACK?

@MartinKonrad
Copy link
Contributor

MartinKonrad commented Jul 16, 2021

@hmontazeri we need to have a closer look on this topic. Please describe your problem in detail and send it via email to [email protected] . Thank you.

@hmontazeri
Copy link

hmontazeri commented Jul 16, 2021

I was able to fix my implementation with some help from @mdf-dths.

# my ruby code
cipher.iv = ["00000000000000000000000000000000"].pack("H*")
cipher.key = [SecureRandom.bytes(64)].pack("H*")

These two lines got it working for me. It is the IV and KEY for the AES encryption. It's mandatory that they are hex values.

@KDederichs
Copy link

Yeah I am having the same problems getting it running in PHP tbh. (if anyone has a working implementation already I'd be grateful ;) )
It does not help that the documentation clearly is written for people that use Java as well so everyone else has to figure out the correct encryption parameters for their respective programing language.

But yeah what would be REALLY nice is if the server didn't accept certificates it can not decode from the start cause I and I assume many other people would assume that when the request is accepted it's good to go....

@hmontazeri
Copy link

@KDederichs there is a PHP implementation I got from @mdf-dths. PHP DCC

@KDederichs
Copy link

Thanks!
Looks like I was almost there, just got the wrong setMGFHash parameter and the wrong IV
Funny, when I set setMGFHash to sha256 the CWA got into a crash loop....

@kev-andrews
Copy link

kev-andrews commented Jul 21, 2021

OK guys, i have been at this for three days. My problem was that the docs -DO- mention that the AES IV is {0...0}
However, they do NOT mention that in that case prepending the IV is not necessary or expected. Maybe this is the default way of doing it when using a zeroed iv vector, but please write that into the docs explicitly. Prepending the IV, as i always do when i use AES, causes all kinds of VC_HC_CWT_NO_ISS and VC_HC_CBOR_DECODING_FAILED errors... Have a working .NET 5 implementation now though...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants