## 4 Results: Proof of Concept
### Identity Management Implementation
#### 4.1.2 Issuance of Verifiable Credentials (VCs)
```
1 DDissuer:did:iota:DUBgVBFuvpbJpkaUWMEb2 ZRhqNtcy591 rZ2 gtrYBpn9 qq7\",
2 DD1 issuer:{
3\"doc\":{
4\"id+: \"did:iota:DugV8 FuvpbJpkaUWMEb2 RhqNtcy591 rZ2 gtrYBpn9 qq7\",
5\"verificationMethod\":[
6{
7\"id+: \"did:iota:DugV8 FuvpbJpkaUWMEb2 RhqNtcy591 rZ2 gtrYBpn9 qq7\"key-issuer\",
8\"controller\": \"did:iota:DUBgV8 FuvpbJpkaUWMEb2 ZRhqNtcy591 rZ2 gtrYBpn9 qq7\",
9\"type\": \"Ed25519 VerificationKey2018\",
10\"publicKeyMultibase\": \"ZHLU2W7 ZAPdCD8 PtJsoWK1 GgebgFaWJnJtAK9 vA&zSJ\"
11\"capabilityInvocation\":[
12{
13\"id\": \"did:iota:DugV8 FuvpbJpkaUWMEb2 RrqNtcy591 rZ2 gtrYBpn9 qq7\"sign-s\",
14\"controller\": \"did:iota:DugV8 FuvpbJpkaUWMEb2 ZRnqNtcy591 rZ2 gtrYBpn9 qq7\",
15\"type\": \"Ed25519 VerificationKey2018\",
16\"publicKeyMultibase\": \"zBQgSrYq693 HgjJtXB9 qVQphSP4w2N8 asuukJWHgAP\"
17\"service\":[
18{
19\"id\": \"did:iota:9 FJX2 QcSzEvAsD6 jTVWZbD3 LtMyM3 wGHaNpc3 sRev-service\",
19\"type\": \"RevocationBitmap2022\",
20\"serviceEndpoint\": \"data:application/octet-stream;base64,
21 Zp5 ekitQUP8 dOFSECPCog\"
22}
23}
24\"meta\":{
25\"created\": \"2023-03-29T09:30:59Z\",
26\"updated\": \"2023-03-29T09:33:59Z\",
27\"previousMeasaged\":
28\"-4 de8e5c78e9 da140e476c81b891e5037d39a436 cb0f5 ba5 aa75 ad4b2f47c089\",
29\"proof\":{
30\"type\": \"Jc8 zd25519 Signature202\",
31\"verificationMethod\": \"sign-0\",
32\"signatureValue\":
33\"=2 MVQqxm32 xyAPanh7 gbebT3 FbGLrmwQuxpBlowwmTgt4 czm8t7 sz8 AKZQXEWwf7
34 vKRasnkKczuqzYlDbakRLQ\"
35}
```  
**Listing 3** Verification method added to the DDo of the issuer. The VC is built according to the W3C Verifiable Credential standard. This process includes the following. 1. Structuring the credential: The credential contains attributes relevant to the Raspberry Pi, such as firmware version, model, serial number, and MAC address. These are entered into the _credentialSubject_ field, which stores information about the subject. 2. Adding Revocation Capability: To address potential security breaches, a revocation service is included. This service uses a _credentialStatus_ object that contains a _revocationBitmapIndex_ field. A binary value of 1 indicates a revoked credential, while 0 indicates an active credential. 3. Update the DID document: The issuer's DID is updated with a verification method by generating a new cryptographic key pair. The private key of the _capabilityInvocation_ relationship is used to sign the updated DDo, ensuring its integrity. Once published to the network, the updated DDo enables the issuer to securely create VCs. 4. Signing the credential: The issuer signs the credential using the private key associated with the verification method. This signature is added to the proof field, allowingverifiers to independently validate the credential using the public key stored in the issuer's DDo. The generated VC is stored on the Raspberry Pi in JSON-LD format, identical to the DDo structure. The generated VC is shown in the Listing 4. The VC can then be presented as a Verifiable Presentation (VP) containing the credential and associated proof signed by the issuer. This presentation enables secure and trusted interactions with verifiers, ensuring the authenticity of the IoT device's identity.