trust_router.git
9 years agoAPI improvements needed by freeradius hartmans/refactor
Sam Hartman [Thu, 17 Jul 2014 00:41:45 +0000 (20:41 -0400)]
API improvements needed by freeradius

9 years agoIn with the scabs, out with the tr_msg union!
Sam Hartman [Wed, 16 Jul 2014 16:51:17 +0000 (12:51 -0400)]
In with the scabs, out with the tr_msg union!

The tr_msg union lead to a number of security issues because the code
tended to check to see if msg->msg_struct_name was non-null.  However
it was always non-null because the pointer was shared among all the
union members.  Instead, use accessors for everything.
LP: #1333734

9 years agoABI/API break: pas in TID_RESP * to handler
Sam Hartman [Wed, 16 Jul 2014 15:17:52 +0000 (11:17 -0400)]
ABI/API break: pas in TID_RESP * to handler

Previously, we passed in TID_RESP ** to the request handler.  However
the request handlers assumed that the response was allocated.  We
don't want responses allocated in the handler, so make it a single
pointer.

note that the existing handler interface is probably inappropriate for
an event-loop-based trust router.

9 years agoTrack num_servers correctly
Sam Hartman [Tue, 15 Jul 2014 20:38:12 +0000 (16:38 -0400)]
Track num_servers correctly

9 years agoTID_RESP: array of servers rather than linked list
Sam Hartman [Tue, 15 Jul 2014 15:39:15 +0000 (11:39 -0400)]
TID_RESP: array of servers rather than linked list

Provide an array of servers rather than a linked list for easier sorting.

TID_RESP is now allocated by talloc.

9 years agoMake tid types opaque
Sam Hartman [Tue, 15 Jul 2014 14:07:29 +0000 (10:07 -0400)]
Make tid types opaque

9 years agoIt is not a failure to have no constraints at all, although no authorizations are...
Sam Hartman [Mon, 14 Jul 2014 19:59:46 +0000 (15:59 -0400)]
It is not a failure to have no constraints at all, although no authorizations are created

9 years agotr_constraints: constraint set members can have limited types
Sam Hartman [Mon, 14 Jul 2014 19:55:27 +0000 (15:55 -0400)]
tr_constraints: constraint set members can have limited types

If a constraint set member has a domain constraint but no realm
constraint treat that as a universal realm constraint (*).

However, if no constraint set member has that constraint type then
access is denied; we do not fail open.

9 years agoInclude authorizations view in schema
Sam Hartman [Mon, 14 Jul 2014 18:18:36 +0000 (14:18 -0400)]
Include authorizations view in schema

9 years agoIterators also needed for tests
Sam Hartman [Fri, 11 Jul 2014 19:12:34 +0000 (15:12 -0400)]
Iterators also needed for tests

9 years agodon't redefine json_t
Sam Hartman [Fri, 11 Jul 2014 19:12:24 +0000 (15:12 -0400)]
don't redefine json_t

9 years agoBack port jansson iterators
Sam Hartman [Fri, 11 Jul 2014 19:03:12 +0000 (15:03 -0400)]
Back port jansson iterators

9 years agotids: include constraints in database
Sam Hartman [Mon, 7 Jul 2014 18:27:48 +0000 (14:27 -0400)]
tids: include constraints in database

new table authorizations includes constraints for domain and realm as
well as the COI and APC used for the connection.

9 years agotr_constraint_set_get_match_strings
Sam Hartman [Thu, 3 Jul 2014 20:40:48 +0000 (16:40 -0400)]
tr_constraint_set_get_match_strings

New function to retrieve the wild card strings that match a constraint
type for an intersected constraint set.

As a result convert TID_REQ to using talloc.

Depend on talloc project wide.

  # Please enter the commit
message for your changes. Lines starting # with '#' will be ignored,
and an empty message aborts the commit.  # On branch master # Your
branch is ahead of 'origin/master' by 3 commits.  # (use "git push" to
publish your local commits) # # Changes to be committed: # modified:
common/tr_constraint.c # modified: configure.ac # modified:
include/trust_router/tid.h # modified:
include/trust_router/tr_constraint.h # modified:
include/trust_router/tr_name.h # modified: tid/tid_req.c # modified:
tid/tidc.c # # Changes not staged for commit: # modified:
include/trust_router/tr_versioning.h # # Untracked files: # "\a" #
cscope.out # db # dest/ # foo.c # trust_router-1.0.tar.gz #

9 years agotr_dh_pub_digest
Sam Hartman [Thu, 3 Jul 2014 20:38:57 +0000 (16:38 -0400)]
tr_dh_pub_digest

Function to compute public key digest of client.  Use to store that in
sqlite3 database.  Update schema.

9 years agocopyright update
Sam Hartman [Thu, 3 Jul 2014 14:43:50 +0000 (10:43 -0400)]
copyright update

9 years agoInclude constraints in tid_req messages
Sam Hartman [Thu, 3 Jul 2014 14:36:35 +0000 (10:36 -0400)]
Include constraints in tid_req messages

9 years agoMakefile: enable tests and -Werror
Sam Hartman [Wed, 2 Jul 2014 09:41:41 +0000 (05:41 -0400)]
Makefile: enable tests and -Werror

Enable t_constraint tests in make check

Also enable -Werror since we pass with that.

9 years agotr_constraint_set_intersect
Sam Hartman [Wed, 2 Jul 2014 09:37:06 +0000 (05:37 -0400)]
tr_constraint_set_intersect

New function to intersect a constraint set and return a constraint
describing the domain and realm constraints that can be met by the
set.

Include tests for this.  The particular test cases are also designed
to test merge_constraints (included in this patch) and
tr_prefix_wildcard_match.

9 years agotid_req: Store json references
Sam Hartman [Wed, 2 Jul 2014 09:34:12 +0000 (05:34 -0400)]
tid_req: Store json references

Support storing references to json objects in TID requests.

9 years agoMove tr_prefix_wildcard_match to tr_constraint.c
Sam Hartman [Wed, 2 Jul 2014 09:30:21 +0000 (05:30 -0400)]
Move tr_prefix_wildcard_match to tr_constraint.c

We need tr_prefix_wildcard_match for merge_constraints and for
tr_filter.c.  Export it from libtr_tid even though it's in a private
header.  It's not part of the public API but is part of the library so
tr_filter can import it.

Also, fix bug; all strings were treated as wildcards.

9 years agofix keys creation
Sam Hartman [Mon, 26 May 2014 19:44:21 +0000 (15:44 -0400)]
fix keys creation

9 years agos:trustrouter:trust_router
Sam Hartman [Wed, 21 May 2014 20:02:01 +0000 (16:02 -0400)]
s:trustrouter:trust_router

9 years agoFix typo
Sam Hartman [Tue, 20 May 2014 01:21:40 +0000 (21:21 -0400)]
Fix typo

9 years agoEnable unit
Sam Hartman [Tue, 20 May 2014 01:10:45 +0000 (21:10 -0400)]
Enable unit

9 years agoInclude tids service unit and schema sql.
Sam Hartman [Tue, 20 May 2014 00:49:39 +0000 (20:49 -0400)]
Include tids service unit and schema sql.

10 years agoUpdate spec file for 1.2
Sam Hartman [Wed, 26 Mar 2014 08:18:16 +0000 (04:18 -0400)]
Update spec file for 1.2

10 years agoRemove need for remote def of TR_FLINE that won't compile on Centos.
Margaret Wasserman [Mon, 24 Mar 2014 22:20:47 +0000 (18:20 -0400)]
Remove need for remote def of TR_FLINE that won't compile on Centos.

10 years agoUpdate trust_router version number to 1.2
Margaret Wasserman [Tue, 18 Mar 2014 21:21:41 +0000 (17:21 -0400)]
Update trust_router version number to 1.2

10 years agoIncrement TID library version number to 1.
Margaret Wasserman [Tue, 18 Mar 2014 20:50:49 +0000 (16:50 -0400)]
Increment TID library version number to 1.

10 years agoIf port passed in to tidc_open_connection() is 0, use the default port.
Margaret Wasserman [Mon, 17 Mar 2014 19:04:47 +0000 (15:04 -0400)]
If port passed in to tidc_open_connection() is 0, use the default port.

10 years agoDebugging printfs for trust router port number.
Margaret Wasserman [Sat, 15 Mar 2014 10:10:00 +0000 (06:10 -0400)]
Debugging printfs for trust router port number.

10 years agoRemove API dependency on jansson for constraints.
Margaret Wasserman [Fri, 14 Mar 2014 13:41:22 +0000 (09:41 -0400)]
Remove API dependency on jansson for constraints.

10 years agoAllow caller to set port number for tidc_open_connection(). Install
Margaret Wasserman [Thu, 13 Mar 2014 13:13:32 +0000 (09:13 -0400)]
Allow caller to set port number for tidc_open_connection().  Install
include/trust_router/tr_constraints.h, so that freeradius will build
with updated TID code.

10 years agoChange name type passed to gss_import_name().
Margaret Wasserman [Wed, 12 Mar 2014 18:18:24 +0000 (14:18 -0400)]
Change name type passed to gss_import_name().

10 years agoAvoid overwriting gss error before printing.
Margaret Wasserman [Wed, 12 Mar 2014 12:30:09 +0000 (08:30 -0400)]
Avoid overwriting gss error before printing.

10 years agoAllow the Trust Router's TIDS port to be set in the internal config.
Margaret Wasserman [Wed, 12 Mar 2014 12:29:25 +0000 (08:29 -0400)]
Allow the Trust Router's TIDS port to be set in the internal config.

10 years agoDon't overwrite minorStatus before printing error.
Margaret Wasserman [Tue, 4 Mar 2014 13:19:05 +0000 (08:19 -0500)]
Don't overwrite minorStatus before printing error.

10 years agoFix bug in previous commit.
Margaret Wasserman [Tue, 4 Mar 2014 12:41:49 +0000 (07:41 -0500)]
Fix bug in previous commit.

10 years agoAdd hostname to service name in gsscon_connect().
Margaret Wasserman [Tue, 4 Mar 2014 12:40:01 +0000 (07:40 -0500)]
Add hostname to service name in gsscon_connect().

10 years agoAdd files not commited for AAA Server IP Addr to Hostname change.
Margaret Wasserman [Fri, 14 Feb 2014 19:03:58 +0000 (14:03 -0500)]
Add files not commited for AAA Server IP Addr to Hostname change.

10 years agoConfigure AAA Server hostname, instead of expecting an IP address.
Margaret Wasserman [Fri, 14 Feb 2014 01:15:53 +0000 (20:15 -0500)]
Configure AAA Server hostname, instead of expecting an IP address.

10 years agoCompletion of constraints code, not fully tested.
Margaret Wasserman [Fri, 14 Feb 2014 00:57:13 +0000 (19:57 -0500)]
Completion of constraints code, not fully tested.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Margaret Wasserman [Mon, 3 Feb 2014 10:45:31 +0000 (05:45 -0500)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agotr_tids_gss_handler: print auth name
Sam Hartman [Thu, 30 Jan 2014 16:02:45 +0000 (11:02 -0500)]
tr_tids_gss_handler: print auth name

Print the name  we authenticated to.

10 years agoConfiguration code for realm and domain constraints.
Margaret Wasserman [Thu, 30 Jan 2014 10:45:30 +0000 (05:45 -0500)]
Configuration code for realm and domain constraints.

10 years agoasprintf not sprintf
Sam Hartman [Thu, 23 Jan 2014 21:11:52 +0000 (16:11 -0500)]
asprintf not sprintf

10 years agoAdded hostname to configuration and example code.
Margaret Wasserman [Wed, 22 Jan 2014 20:05:58 +0000 (15:05 -0500)]
Added hostname to configuration and example code.

10 years agoAdd things missing from previous commit to add realm_name to the service name.
Margaret Wasserman [Wed, 22 Jan 2014 14:43:02 +0000 (09:43 -0500)]
Add things missing from previous commit to add realm_name to the service name.

10 years agoChanges to add realm name (from config) to end of service name for passive authentica...
Margaret Wasserman [Wed, 22 Jan 2014 14:37:22 +0000 (09:37 -0500)]
Changes to add realm name (from config) to end of service name for passive authentication.

10 years agonew version
Sam Hartman [Fri, 20 Dec 2013 20:15:59 +0000 (15:15 -0500)]
new version

10 years agoFix bugs found in testing new filtering code.
Margaret Wasserman [Fri, 20 Dec 2013 16:43:36 +0000 (11:43 -0500)]
Fix bugs found in testing new filtering code.

10 years agoClean up compiler warnings (and likely bugs).
Margaret Wasserman [Thu, 19 Dec 2013 18:20:57 +0000 (13:20 -0500)]
Clean up compiler warnings (and likely bugs).

10 years agoFull support for rp_permitted filters using new filter structures, etc.
Margaret Wasserman [Thu, 19 Dec 2013 18:14:09 +0000 (13:14 -0500)]
Full support for rp_permitted filters using new filter structures, etc.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Margaret Wasserman [Wed, 18 Dec 2013 12:27:00 +0000 (07:27 -0500)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agoConfiguration for full filter structures.
Margaret Wasserman [Wed, 18 Dec 2013 12:25:52 +0000 (07:25 -0500)]
Configuration for full filter structures.

10 years agospecfile: bump release
Sam Hartman [Mon, 25 Nov 2013 12:59:39 +0000 (07:59 -0500)]
specfile: bump release

10 years agoUpdate makefiles to include tid/tr_resp.c.
Margaret Wasserman [Tue, 19 Nov 2013 17:27:51 +0000 (12:27 -0500)]
Update makefiles to include tid/tr_resp.c.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Margaret Wasserman [Tue, 19 Nov 2013 17:26:15 +0000 (12:26 -0500)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agoAdded access functions for TID_RESP structure.
Margaret Wasserman [Tue, 19 Nov 2013 17:25:11 +0000 (12:25 -0500)]
Added access functions for TID_RESP structure.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Sam Hartman [Tue, 19 Nov 2013 17:12:37 +0000 (12:12 -0500)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agotemporary: gsscon_passive_authenticate: acquire trustidentity creds.
Sam Hartman [Tue, 19 Nov 2013 17:04:24 +0000 (12:04 -0500)]
temporary: gsscon_passive_authenticate: acquire trustidentity creds.

As discussin in LP: #1203159, the client always uses trustidentity as
a name.  We're running into problems because the server uses
GSS_C_NO_CREDENTIAL.  That means no service name is included in RADIUS
and unless there's proxy magic, then channel bindings fails.

For now, also acquire trustidentity credentials on the server.  This
still leaves the security issue discussed by that bug, but at least
the code works.

10 years agoAccess funcitons for TID_REQ structure, incl TID code reorg.
Margaret Wasserman [Tue, 19 Nov 2013 16:44:01 +0000 (11:44 -0500)]
Access funcitons for TID_REQ structure, incl TID code reorg.

10 years agospecfile: sqlite-devel not sqlite3-devel
Sam Hartman [Mon, 28 Oct 2013 20:16:11 +0000 (16:16 -0400)]
specfile: sqlite-devel not sqlite3-devel

10 years agobuildrequires
Sam Hartman [Mon, 28 Oct 2013 18:51:12 +0000 (14:51 -0400)]
buildrequires

10 years agoDon't multiply define the same type
Sam Hartman [Thu, 10 Oct 2013 17:26:23 +0000 (13:26 -0400)]
Don't multiply define the same type

10 years agospec file updates
Sam Hartman [Tue, 8 Oct 2013 12:45:31 +0000 (08:45 -0400)]
spec file updates

fixes LP: #1236768

10 years agoAdd accessors for TR_MSG structure.
Margaret Wasserman [Tue, 17 Sep 2013 11:31:51 +0000 (07:31 -0400)]
Add accessors for TR_MSG structure.

10 years agoUpdated config file with complete, consistent config for Trust Router 1.0.
Margaret Wasserman [Wed, 10 Jul 2013 17:11:05 +0000 (13:11 -0400)]
Updated config file with complete, consistent config for Trust Router 1.0.

10 years agoFix forward reference that causes CentOS build to fail.
Margaret Wasserman [Wed, 10 Jul 2013 16:37:14 +0000 (12:37 -0400)]
Fix forward reference that causes CentOS build to fail.

10 years agoFix logic error in previous fix for APC parsing.
Margaret Wasserman [Wed, 10 Jul 2013 15:27:55 +0000 (11:27 -0400)]
Fix logic error in previous fix for APC parsing.

10 years agoDon't parse APCs in IDP realm if they aren't there.
Margaret Wasserman [Wed, 10 Jul 2013 15:26:29 +0000 (11:26 -0400)]
Don't parse APCs in IDP realm if they aren't there.

10 years agoVersion 1.0 1.0
Sam Hartman [Tue, 9 Jul 2013 23:47:39 +0000 (19:47 -0400)]
Version 1.0

10 years agoFix order of parameters in wildcard call.
Margaret Wasserman [Tue, 9 Jul 2013 22:50:56 +0000 (18:50 -0400)]
Fix order of parameters in wildcard call.

10 years agoClean up wildcard match code, add debugging printf
Margaret Wasserman [Tue, 9 Jul 2013 22:26:34 +0000 (18:26 -0400)]
Clean up wildcard match code, add debugging printf

10 years agoFix logic error in gss name comparison.
Margaret Wasserman [Tue, 9 Jul 2013 22:12:46 +0000 (18:12 -0400)]
Fix logic error in gss name comparison.

10 years agoFix gss matching code to compare to the rp realm for the request.
Margaret Wasserman [Tue, 9 Jul 2013 21:57:18 +0000 (17:57 -0400)]
Fix gss matching code to compare to the rp realm for the request.

10 years agoFix segfault in RP client lookup code.
Margaret Wasserman [Tue, 9 Jul 2013 21:25:09 +0000 (17:25 -0400)]
Fix segfault in RP client lookup code.

10 years agoFixes to make gss_name checking code compile.
Margaret Wasserman [Tue, 9 Jul 2013 20:21:19 +0000 (16:21 -0400)]
Fixes to make gss_name checking code compile.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Margaret Wasserman [Tue, 9 Jul 2013 20:08:54 +0000 (16:08 -0400)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agoAdd code to do gss_name check in trust router.
Margaret Wasserman [Tue, 9 Jul 2013 20:08:28 +0000 (16:08 -0400)]
Add code to do gss_name check in trust router.

10 years agotid: implement GSS name callback
Sam Hartman [Tue, 9 Jul 2013 20:03:52 +0000 (16:03 -0400)]
tid: implement GSS name callback

10 years agoAdd code for rp client lookups to the build.
Margaret Wasserman [Tue, 9 Jul 2013 19:48:40 +0000 (15:48 -0400)]
Add code for rp client lookups to the build.

10 years agoUpdate config code and config files to fully parse rp_client
Margaret Wasserman [Tue, 9 Jul 2013 19:10:11 +0000 (15:10 -0400)]
Update config code and config files to fully parse rp_client
rp_permitted filters.

10 years agotids: build after gsscon change.
Sam Hartman [Tue, 9 Jul 2013 14:36:09 +0000 (10:36 -0400)]
tids: build after gsscon change.

This callback always succeeds and needs to be replaced with a correct callback exposed through the tids interface.

10 years agogsscon: callback for client name validation
Sam Hartman [Mon, 8 Jul 2013 19:08:29 +0000 (15:08 -0400)]
gsscon: callback for client name validation

gsscon_passive_authenticate now takes a callback for client authentication.

10 years agoMerge gsscon_connect() and gsscon_active_authenticate() calls.
Margaret Wasserman [Mon, 8 Jul 2013 19:00:52 +0000 (15:00 -0400)]
Merge gsscon_connect() and gsscon_active_authenticate() calls.

10 years agoDeclare variable so the code will build.
Margaret Wasserman [Wed, 3 Jul 2013 13:30:54 +0000 (09:30 -0400)]
Declare variable so the code will build.

10 years agoCheck rp_realm and target_realm membership in both COI and APC
Margaret Wasserman [Wed, 3 Jul 2013 08:02:38 +0000 (04:02 -0400)]
Check rp_realm and target_realm membership in both COI and APC

10 years agoUpdates to the way configuration is merged.
Margaret Wasserman [Wed, 3 Jul 2013 08:01:48 +0000 (04:01 -0400)]
Updates to the way configuration is merged.

10 years agoDo not require server list in error response.
Margaret Wasserman [Tue, 2 Jul 2013 21:18:18 +0000 (17:18 -0400)]
Do not require server list in error response.

10 years agoDo not send the request on community membership error.
Margaret Wasserman [Tue, 2 Jul 2013 21:17:26 +0000 (17:17 -0400)]
Do not send the request on community membership error.

10 years agoSet socket options before bind().
Margaret Wasserman [Tue, 2 Jul 2013 19:51:54 +0000 (15:51 -0400)]
Set socket options before bind().

10 years agoFix segfault where request was only partially memset().
Margaret Wasserman [Tue, 2 Jul 2013 19:51:25 +0000 (15:51 -0400)]
Fix segfault where request was only partially memset().

10 years agoCode to check community membership on TR.
Margaret Wasserman [Tue, 2 Jul 2013 18:42:01 +0000 (14:42 -0400)]
Code to check community membership on TR.

10 years agoAdded function to lookup a community by name.
Margaret Wasserman [Tue, 2 Jul 2013 18:05:23 +0000 (14:05 -0400)]
Added function to lookup a community by name.

10 years agoMerge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router
Margaret Wasserman [Tue, 2 Jul 2013 14:04:20 +0000 (10:04 -0400)]
Merge branch 'master' of moonshot.suchdamage.org:/srv/git/trust_router

10 years agoAdded function to do prefix wildcard comparison for filtering.
Margaret Wasserman [Tue, 2 Jul 2013 14:02:26 +0000 (10:02 -0400)]
Added function to do prefix wildcard comparison for filtering.

10 years agoFix coding error (segfault) in community config code.
Margaret Wasserman [Tue, 2 Jul 2013 13:15:50 +0000 (09:15 -0400)]
Fix coding error (segfault) in community config code.

10 years agoMake functions to find RPs and IDPs externally accessible.
Margaret Wasserman [Tue, 2 Jul 2013 13:12:55 +0000 (09:12 -0400)]
Make functions to find RPs and IDPs externally accessible.