Commit 6bbbf939 authored by petre's avatar petre
Browse files

updated the type system

parent f8ff7977
Loading
Loading
Loading
Loading
+84 −12
Original line number Diff line number Diff line
@@ -167,39 +167,111 @@ module LibMsrp_TypesAndValues {
        
        group RFC4976HeaderTypes {
            
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MsrpExpires {
                HeaderName headerName (STATUS_E),
                integer intValue
        	}
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MsrpMinExpires {
                HeaderName headerName (MIN_EXPIRES_E), 
                integer intValue 
            }
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MaxExpires {
                HeaderName headerName (MAX_EXPIRES_E),
                integer intValue
            }
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record UsePath {
                HeaderName headerName (USE_PATH_E),
                MsrpURIs msrpURIs
            }
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MsrpWWWAuthenticate {
                HeaderName headerName (WWW_AUTHENTICATE_E)
                //TODO
                HeaderName headerName (WWW_AUTHENTICATE_E),
                Digest digest
            }
            
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record Digest {	
            	charstring realm optional, 	// quoted-string
                charstring nonce optional,	// quoted-string
                charstring opaque optional,	// quoted-string
                charstring stale optional,	// "true" / "false" (no quates)
                charstring algorithm optional, // "MD5" / token (no quates)
                Qop_ValueList qopOptions optional,	// quoted-string
                AuthParamList authParams optional	
            } 
            
            type charstring Qop_Value;	// "auth" / token
            
            type set of Qop_Value Qop_ValueList;
            
            type record AuthParam {
                charstring pvalue,	// token 
            	charstring pname	// token / quoted-string
            }
            
            type set of AuthParam AuthParamList;
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MsrpAuthorization {
                HeaderName headerName (AUTHORIZATION_E)
                //TODO
                HeaderName headerName (AUTHORIZATION_E),
                DigestResponse digestResponse
            }
            
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record DigestResponse {	
            	charstring username optional, // quoted-string
                charstring realm optional, // quoted-string
                charstring nonce optional, // quoted-string
                charstring response optional, // DQUOTE 32LHEX DQUOTE; LHEX = DIGIT / %x61-66 ;lowercase a-f
                charstring algorithm optional, // "MD5" / token
                charstring cnonce optional, // quoted-string
                charstring opaque optional, // quoted-string
                Qop_Value message_qop optional, // no quates
                charstring nonce_count optional, // no quates
                AuthParamList authParams optional
            }
        	
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type record MsrpAuthenticationInfo {
                HeaderName headerName (AUTHENTICATION_INFO_E)
                //TODO
                HeaderName headerName (AUTHENTICATION_INFO_E),
                AInfo ainfo
            }
            
            /**
             * @see RFC 4976 - Clause 7. Formal Syntax
             */
            type set AInfo {	// order is not important
                charstring nextnonce optional,
                Qop_Value message_qop optional,  // no quates	
                charstring response_auth optional,
                charstring cnonce optional,
                charstring nonce_count optional	// no quates
            }
        }