Intel® Enhanced Privacy ID SDK 2.0.0

Sample Issuer Material

Because the SDK does not include issuer APIs, pre-generated sample data is included for validation purposes.

Note
  Sample compressed key material is not included in the package.

# Sample Groups

Issuers create groups and manage group membership. For each group, the issuer creates a group public key simultaneously with the corresponding issuing private key. The issuer uses the issuing private key to create unique member private keys for each group member, and makes the group public key available to verifiers.

All groups have the following:

- Group public key, which corresponds to the issuing private key kept by the issuer
- Signature based revocation list
- Private key based revocation list
- Member private keys, generated from the issuing private key

If a signature based revocation list or private key based revocation list does not exist, it is assumed to be empty.

## groupa

There are eight members in groupa:

- groupa/member0 - A non-revoked member.
- groupa/member1 - Another non-revoked member.
- groupa/privrevokedmember0 - A revoked member. Revoked by Private-Key based revocation list (`groupa/privrl.bin`)
- groupa/privrevokedmember1 - A revoked member. Revoked by Private-Key based revocation list (`groupa/privrl.bin`)
- groupa/privrevokedmember2 - A revoked member. Revoked by Private-Key based revocation list (`groupa/privrl.bin`)
- groupa/sigrevokedmember0 - A revoked member. Revoked by Signature based revocation list (`groupa/sigrl.bin`)
- groupa/sigrevokedmember1 - A revoked member. Revoked by Signature based revocation list (`groupa/sigrl.bin`)
- groupa/sigrevokedmember2 - A revoked member. Revoked by Signature based revocation list (`groupa/sigrl.bin`)

The following are groupa revocation lists:

- `groupa/privrl.bin` - Private-Key based revocation list. privrevokedmember0, privrevokedmember1 and privrevokedmember2** revoked.
- `groupa/sigrl.bin` - Signature based revocation list. sigrevokedmember0, sigrevokedmember0 and sigrevokedmember0** revoked.

## groupb

There are four members in groupb:

- groupb/member0 - A non-revoked member.
- groupb/member1 - Another non-revoked member.
- groupb/privrevokedmember0 - A revoked member. Revoked by Private-Key based revocation list (`groupb/privrl.bin`)
- groupb/sigrevokedmember0 - A revoked member. Revoked by Signature based revocation list (`groupb/sigrl.bin`)

The following are groupb revocation lists:

- `groupb/privrl.bin` - Private-Key based revocation list. privrevokedmember0 revoked.
- `groupb/sigrl.bin` - Signature based revocation list. sigrevokedmember0 revoked.

# Group Based Revocation Lists

If an entire group is no longer valid, the issuer can revoke it using the group based revocation list. Two sample group based revocation lists are provided with the SDK.

- `grprl_empty.bin` - No entries
- `grprl.bin` - One entry in which groupb is revoked.