/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.jackson; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.intel.dcsg.cpg.crypto.RsaUtil; import java.io.IOException; import java.security.PublicKey; /** * * @author jbuhacoff */ public class PublicKeyDeserializer extends JsonDeserializer<PublicKey> { @Override public PublicKey deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException { byte[] bytes = jp.getBinaryValue(); try { PublicKey publicKey = RsaUtil.decodeDerPublicKey(bytes); return publicKey; } catch(Exception e) { // throw new JsonProcessingException("Cannot read public key", jp.getCurrentLocation(), e); throw new IOException("Cannot read public key", e); } } }