code: func (c *fabricCAAdapter) Revoke(key core.Key, cert []byte, request *api.RevocationRequest) (*api.RevocationResponse, error) {
  	// Create revocation request
  	var req = caapi.RevocationRequest{
  		CAName: request.CAName,
  		Name:   request.Name,
  		Serial: request.Serial,
  		AKI:    request.AKI,
  		Reason: request.Reason,
  	}
  
  	registrar, err := c.newIdentity(key, cert)
  	if err != nil {
  		return nil, errors.Wrap(err, "failed to create CA signing identity")
  	}
  
  	resp, err := registrar.Revoke(&req)
  	if err != nil {
  		return nil, errors.Wrap(err, "failed to revoke")
  	}
  	var revokedCerts []api.RevokedCert
  	for i := range resp.RevokedCerts {
  		revokedCerts = append(
  			revokedCerts,
  			api.RevokedCert{
  				Serial: resp.RevokedCerts[i].Serial,
  				AKI:    resp.RevokedCerts[i].AKI,
  			})
  	}
  
  	return &api.RevocationResponse{
  		RevokedCerts: revokedCerts,
  		CRL:          resp.CRL,
  	}, nil
  }
docs: // Revoke handles user revocation.
  // key: registrar private key
  // cert: registrar enrollment certificate
  // request: Revocation Request