diff --git a/pgpy/packet/fields.py b/pgpy/packet/fields.py
index <HASH>..<HASH> 100644
--- a/pgpy/packet/fields.py
+++ b/pgpy/packet/fields.py
@@ -65,6 +65,12 @@ class SymmetricKeyAlgo(PFIntEnum):
 
         raise NotImplementedError(self.name)
 
+    def keylen(self):
+        if self == SymmetricKeyAlgo.CAST5:
+            return 128
+
+        raise NotImplementedError(self.name)
+
 
 class CompressionAlgo(PFIntEnum):
     Uncompressed = 0x00
@@ -89,6 +95,7 @@ class CompressionAlgo(PFIntEnum):
 
 
 class HashAlgo(PFIntEnum):
+    Invalid = 0x00
     MD5 = 0x01
     SHA1 = 0x02
     RIPEMD160 = 0x03
@@ -100,6 +107,12 @@ class HashAlgo(PFIntEnum):
     def __str__(self):
         return self.name
 
+    def digestlen(self):
+        if self == HashAlgo.SHA1:
+            return 160
+
+        raise NotImplementedError()
+
 
 class PacketField(object):
     def __init__(self, packet=None):
@@ -250,7 +263,6 @@ class Header(PacketField):
         return _bytes
 
 
-
 class SubPacket(PacketField):
     class Type(PFIntEnum):
         ##TODO: parse more of these
added some new metadata to fields; added new invalid HashAlgo to use as an initial value