* @param sequence
* @return The {@link EncryptedData}.
*/
public static EncryptedData decode( DERSequence sequence )
{
EncryptedData encryptedData = new EncryptedData();
for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
DEREncodable derObject = object.getObject();
switch ( tag )
{
case 0:
DERInteger etype = ( DERInteger ) derObject;
encryptedData.setEType( EncryptionType.getTypeByOrdinal( etype.intValue() ) );
break;
case 1:
DERInteger kvno = ( DERInteger ) derObject;
encryptedData.setKvno( kvno.intValue() );
break;
case 2:
DEROctetString cipher = ( DEROctetString ) derObject;
encryptedData.setCipher( cipher.getOctets() );
break;
}
}
return encryptedData;