--- ./cryptlib.h.orig	2024-10-31 00:50:22.444476000 -0400
+++ ./cryptlib.h	2024-10-31 00:50:22.528176000 -0400
@@ -592,6 +592,7 @@
 	/* Misc.information */
 	CRYPT_CTXINFO_LABEL,			/* Label for private/secret key */
 	CRYPT_CTXINFO_PERSISTENT,		/* Obj.is backed by device or keyset */
+	CRYPT_CTXINFO_SSH_PUBLIC_KEY,
 
 	/* Used internally */
 	CRYPT_CTXINFO_LAST, CRYPT_CERTINFO_FIRST = 2000,
--- ./kernel/attr_acl.c.orig	2024-10-31 00:50:22.454000000 -0400
+++ ./kernel/attr_acl.c	2024-10-31 00:50:22.534228000 -0400
@@ -779,6 +779,11 @@
 		MKPERM( Rxx_RWD ),
 		ROUTE( OBJECT_TYPE_CONTEXT ),
 		subACL_CtxinfoPersistent ),
+	MKACL_S(	/* Hash value */
+		CRYPT_CTXINFO_SSH_PUBLIC_KEY,
+		ST_CTX_PKC, ST_NONE, ST_NONE, 
+		MKPERM( Rxx_Rxx ),
+		ROUTE( OBJECT_TYPE_CONTEXT ), RANGE( 16 + MIN_PKCSIZE, ( CRYPT_MAX_PKCSIZE * 4 ) + 20 ) ),
 	MKACL_END(), MKACL_END()
 	};
 
--- ./context/ctx_attr.c.orig	2023-08-24 00:04:00.000000000 -0400
+++ ./context/ctx_attr.c	2024-10-31 00:50:22.539343000 -0400
@@ -422,6 +422,11 @@
 				}
 			STDC_FALLTHROUGH;
 
+		case CRYPT_CTXINFO_SSH_PUBLIC_KEY:
+			if ( needsKey( contextInfoPtr ) )
+				return CRYPT_ERROR_NOTFOUND;
+			if (contextType != CONTEXT_PKC)
+				return CRYPT_ERROR_NOTFOUND;
 		case CRYPT_IATTRIBUTE_KEY_PGP:
 		case CRYPT_IATTRIBUTE_KEY_SSH:
 		case CRYPT_IATTRIBUTE_KEY_TLS:
--- ./context/keyload.c.orig	2023-02-26 03:18:06.000000000 -0500
+++ ./context/keyload.c	2024-10-31 00:50:22.524017000 -0400
@@ -38,6 +38,7 @@
 		{ CRYPT_IATTRIBUTE_KEY_PGP_PARTIAL, KEYFORMAT_PGP },
 		{ CRYPT_IATTRIBUTE_KEY_SPKI, KEYFORMAT_CERT },
 		{ CRYPT_IATTRIBUTE_KEY_SPKI_PARTIAL, KEYFORMAT_CERT },
+		{ CRYPT_CTXINFO_SSH_PUBLIC_KEY, KEYFORMAT_SSH },
 		{ CRYPT_ERROR, 0 }, { CRYPT_ERROR, 0 }
 		};
 	int value, status;
