rxgk: Define some protocol constants 39/12939/3
authorAndrew Deason <adeason@sinenomine.net>
Thu, 1 Mar 2018 00:25:46 +0000 (18:25 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Sun, 10 Jun 2018 19:26:01 +0000 (15:26 -0400)
rxgk_int.xg is missing a few constants mentioned in the respective
protocol specs:

- The RPC-L definitions for PrAuthName are defined, but no
  PRAUTHTYPE_* constants for the 'kind' field are defined. Define at
  least PRAUTHTYPE_GSS, which rxgk uses.

- The rxgk spec indicates a size of 20 for the nonces used in rxgk
  challenge and response packets. Define a constant
  (RXGK_CHALLENGE_NONCE_LEN) for this value, to make it easier to
  define similarly-sized structures.

- The rxgk-afs spec defines the time value of 0 as a special "never
  expires" value. Define a constant (RXGK_NEVERDATE) to represent it.

Change-Id: I07e1a1b19d1c887fd3e1a1d0f270d5af7b8581b0
Reviewed-on: https://gerrit.openafs.org/12939
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/rxgk/rxgk_int.xg
src/rxgk/rxgk_private.h

index 995f940..14fd072 100644 (file)
@@ -94,9 +94,11 @@ CombineTokens(IN RXGK_Data *token0, IN RXGK_Data *token1,
 
 /* Begin definitions for security class operation. */
 
+const RXGK_CHALLENGE_NONCE_LEN = 20;
+
 /* RX challenge and response structures */
 struct RXGK_Challenge {
-    opaque nonce[20];
+    opaque nonce[RXGK_CHALLENGE_NONCE_LEN];
 };
 const RXGK_MAXAUTHENTICATOR = 1416;    /* better fit in a packet! */
 struct RXGK_Response {
@@ -106,7 +108,7 @@ struct RXGK_Response {
 };
 
 struct RXGK_Authenticator {
-    opaque nonce[20];
+    opaque nonce[RXGK_CHALLENGE_NONCE_LEN];
     opaque appdata<>;
     RXGK_Level level;
     afs_uint32 epoch;
@@ -124,8 +126,13 @@ struct PrAuthName {
     opaque display<AUTHPRINTABLEMAX>;
 };
 
+/* PrAuthName 'kind' values */
+const PRAUTHTYPE_GSS = 2;
+
 /* RPC-L from draft-wilkinson-afs3-rxgk-afs. */
 
+const RXGK_NEVERDATE = 0;
+
 /* Begin authenticator appdata definition. */
 
 struct RXGK_Authenticator_AFSAppData {
index 48aaaa8..05d434d 100644 (file)
@@ -75,7 +75,7 @@ struct rxgk_sconn {
     unsigned char tried_auth;
     unsigned char auth;
     rxgkTime expiration;
-    unsigned char challenge[20];
+    unsigned char challenge[RXGK_CHALLENGE_NONCE_LEN];
     struct rxgkStats stats;
     rxgkTime start_time;
     struct rx_identity *client;