aboutsummaryrefslogtreecommitdiff
path: root/client
AgeCommit message (Collapse)Author
2015-06-08Added new method for wallet-backend, updateJon Robertson
update will work generally like get, but only for objects that have a concept of updating content automatically, like keytabs and passwords. For these, the content will be updated before sending to the client. In a later release get for keytabs will be modified to never update the kvno before sending to the user, and so the unchanging flag will be phased out in lieu of explicitly using the method that does what you want. Change-Id: I96a84416c5e50278eb29fe07052dde6e063bc071
2015-06-08Added acl replace command to wallet backendJon Robertson
New command for replacing the ownership of anything owned by a specific ACL with another ACL. This differs from acl rename in that it's to be used when the destination ACL already exists and potentially already owns some objects. Change-Id: I765bebf499fe0f861abc2ffe1873990590beed36
2014-07-15Use xcalloc instead of xmalloc with calculated sizesRuss Allbery
Ensure we don't have integer overflow when allocating the array of struct iovec for store commands. Change-Id: I0777ca8ef050b9773dba0c03b5e8533d3b2d5486 Reviewed-on: https://gerrit.stanford.edu/1560 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2014-07-15Fix wallet-backend parsing of expiresRuss Allbery
Fix wallet-backend parsing of the expires command to expect only one argument as the expiration. This was correctly documented in the wallet client man page, but not in wallet-backend, and it accepted two arguments (a date and time). However, Wallet::Server did not and would just ignore the time. Now wallet-backend correctly requires the date and time be passed as a single argument. Change-Id: I8e51a576ea8781502f4eb983462ceca867b002be Reviewed-on: https://gerrit.stanford.edu/1556 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2014-04-13Change my email address to eagle@eyrie.orgRuss Allbery
Change-Id: I4c2b5d7c807d6c27dd18a3b92eef66d21287d21e Reviewed-on: https://gerrit.stanford.edu/1481 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2014-01-06Fix wallet-rekey on keytabs containing multiple principalsRuss Allbery
Fix wallet-rekey on keytabs containing multiple principals. Previous versions assumed one could concatenate keytab files together to make a valid keytab file, which doesn't work with some Kerberos libraries. This caused new keys downloaded for principals after the first to be discarded. As a side effect of this fix, wallet-rekey always appends new keys directly to the existing keytab file, and never creates a backup copy of that file. Change-Id: I5f863239ce4ebba66b35ff09454f2897367bd359 Reviewed-on: https://gerrit.stanford.edu/1369 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-03-27Allow owners of objects to destroy them by defaultRuss Allbery
Owners of wallet objects are now allowed to destroy them. In previous versions, a special destroy ACL had to be set and the owner ACL wasn't used for destroy actions, but operational experience at Stanford has shown that letting owners destroy their own objects is a better model. Change-Id: I0e97d7a000e62cf5321add7b44140db6edc6769f Reviewed-on: https://gerrit.stanford.edu/973 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Add missing license statement to client/krb5.cRuss Allbery
Change-Id: I6c055a010c52b5c666db203a8c990c531cd1dfe4 Reviewed-on: https://gerrit.stanford.edu/851 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Add explicit license statements to all POD documentationRuss Allbery
For scripts, do this by moving the copyright and license statement from the top of the script into the POD documentation. Also try to uniformly put the SEE ALSO section last. Change-Id: Id31a5c0d5e6f6831a689deec41a13d35bb40465a Reviewed-on: https://gerrit.stanford.edu/850 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Drop use of concat in favor of xasprintfRuss Allbery
Change-Id: I6a84920b0c0dc1849af8a34ecf8f3fb70b45e17c Reviewed-on: https://gerrit.stanford.edu/843 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Use correct form of Stanford's copyright statementRuss Allbery
Change-Id: I06dd9ecca19315179bdd34d4b301548fe7604331 Reviewed-on: https://gerrit.stanford.edu/842 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Check for errors when renaming new keytabRuss Allbery
When linking the temporary keytab to its final file name, wallet wasn't checking for errors. Caught by the new gcc warnings. Change-Id: Ia75b231754bafc800e9e521345b85da256c95ed1 Reviewed-on: https://gerrit.stanford.edu/840 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2012-11-04Add new acl check commandRuss Allbery
Add a new acl check command which, given an ACL ID, prints yes if that ACL already exists and no otherwise. This is parallel to the check command for objects. Also fix some documentation errors in the wallet client documentation, saying that the check command doesn't require any ACL and fixing one place where "show" was used instead of "store".
2012-08-07Add some stopwords for POD spelling checksRuss Allbery
2011-06-20Add a comment field to objectsRuss Allbery
Add a comment field to objects and corresponding commands to wallet-backend and wallet to set and retrieve it. The comment field can only be set by the owner or wallet administrators but can be seen by anyone on the show ACL.
2010-08-13Various minor fixes for wallet-rekeyRuss Allbery
Rekey the keytab in the same principal order as what's stored in the keytab rather than reversing it, since that makes it easier to test. Suppress the error message about no data from the server if the server sent an error. Fix some coding style and spelling errors.
2010-08-13Use die instead of sysdie for no rekeyable principalsRuss Allbery
In wallet-rekey, if the keytab we're supposed to rekey has no rekeyable principals, die rather than sysdie since there's no errno error to report.
2010-07-29Abort rekeying if we fail on the first principalRuss Allbery
If we get a failure to rekey a principal before we've succeeded with any principal, abort rather than continuing.
2010-07-29Fix wallet-rekey with foreign realm keytab entriesRuss Allbery
The loop handling finding principals to rekey was not correctly coping with principals from foreign realms.
2010-07-29Add documentation for wallet-rekeyRuss Allbery
2010-07-28Break wallet-rekey out into a separate client programRuss Allbery
Build a separate wallet-rekey client that rekeys every keytab given on the command-line. Fix some coding style issues and add internal prototypes. Build the shared source for both clients into an uninstalled library to save compilation time.
2010-07-27Finished first pass of the rekey commandJon Robertson
Cleaned up several bugs preventing the rekey command from working (bad calls to variables, matching on version of principal name already stripped of realm), and removed debugging code.
2010-07-27Adding wallet rekey capability -- work in progress, testingJon Robertson
First, testing version of wallet rekey code, committed in order to get feedback from Russ. This code will eventually take an existing keytab file, and for every principal belonging to our default realm in it, get new versions of that keytab and merge them into the file. This allows for quietly rekeying principals automatically.
2010-06-29Add another stopword to the wallet client man pageRuss Allbery
2010-05-26Document acl rename in the wallet man pageRuss Allbery
2010-03-08Correctly include portable/krb5.h in wallet/krb5.cRuss Allbery
We got lucky since client/internal.h includes this anyway, but include the portability layer properly.
2010-02-20Add portable/uio.h and include it in client/wallet.cRuss Allbery
Now that the wallet client uses struct iovec, it needs to include the relevant header file. Import the portability layer for possible future Windows support.
2010-02-20Update documentation for support for storing nul dataRuss Allbery
Update the wallet client, wallet-backend, and Wallet::Object::File documentation for the support for storing data containing nul characters using the new stdin support in remctld. Add this to NEWS.
2010-02-20Add support in the wallet client for store of binary dataRuss Allbery
Refactor the wallet client code to use remctl_commandv and send stores with data containing nul.
2010-02-09Document that -u works if you don't have a ticketRuss Allbery
The wallet client documentation said that you always needed an existing ticket. Mention that -u will work as well.
2010-02-09Reorganize main POD tests and add a spelling checkRuss Allbery
Add a POD spelling test to the non-Perl-module part of the code and move the documentation tests into a separate directory. Merge the POD syntax tests between client and server into one test. Reformat all of the POD documentation to use 74 columns. Fix a few revealed spelling errors or weird wordings.
2010-02-09Update util code and import Kerberos portability glueRuss Allbery
Use the Kerberos portability layer from rra-c-util 3.0 and avoid Kerberos API calls deprecated on Heimdal. Break util/util.h into separate header files and update all source files accordingly. The test suite is not yet updated. That will come in subsequent commits.
2010-02-09Use a temporary disk cache in the wallet client instead of memoryRuss Allbery
The wallet client now uses a temporary disk ticket cache when obtaining tickets with the -u option rather than an in-memory cache, allowing for a libremctl built against a different Kerberos implementation than the wallet client. This primarily helps with testing.
2010-02-09Use the long enctype name for aes256-cts-hmac-sha1-96Russ Allbery
Heimdal requires the full name and doesn't support the short name that MIT has as an alias. Change the documentation to use the long name uniformly.
2010-02-09Remove kaserver synchronization support from the wallet clientRuss Allbery
The wallet client no longer enables kaserver synchronization when a srvtab is requested with -S. Instead, it just extracts the DES key from the keytab and writes it to a srvtab. It no longer forces the kvno of the srvtab to 0 (a Stanford-specific action) and instead preserves the kvno from the key in the keytab. This should now do the right thing for sites that use a KDC that serves both Kerberos v4 and Kerberos v5 from the same database.
2010-02-08Initial port to HeimdalRuss Allbery
Just get the client code to compile with Heimdal. This will need more work later to use my regular Kerberos portability layer.
2009-06-09Remove Subversion Id stringsRuss Allbery
2008-04-24The wallet command-line client now reads the data for store from aRuss Allbery
file (using -f) or from standard input (if -f wasn't given) when the data isn't specified on the command line. The data still must not contain nul characters.
2008-04-24Major coding style cleanup. Updated all shared code from my otherRuss Allbery
projects. The configure option requesting AFS kaserver support (and thus building kasetkey) is now --with-kaserver instead of --with-afs. If KRB5_CONFIG was explicitly set in the environment, don't use a different krb5-config based on --with-krb4 or --with-krb5. If krb5-config isn't executable, don't use it. This allows one to force library probing by setting KRB5_CONFIG to point to a nonexistent file. Sanity-check the results of krb5-config before proceeding and error out in configure if they don't work. Stop setting Stanford-specific compile-time defaults for the wallet server and port.
2008-04-24Switch to messages-krb5 in util instead of the one built in the clientRuss Allbery
library and start the transition of coding style.
2008-02-12Correctly handle get of an empty object in the wallet client. TheRuss Allbery
empty string is valid object content. Add a full end-to-end test suite to catch protocol mismatches between the client and server, such as the one fixed in this release.
2008-02-08Fix the wallet client to use check instead of exists.Russ Allbery
2008-02-07Add new exists and autocreate wallet server interfaces. The firstRuss Allbery
states whether a given object exists and the second attempts to create the object using the default owner rules. Remove default owner handling from the create interface, which is now for administrators only. Remove server-side auto-creation of objects on get or store and instead have the client check for object existence and call autocreate if necessary. This removes confusion between default ACLs and administrative object creation for users who are also on the ADMIN ACL.
2008-02-07Add a new autocreate API call that tries to create an object using theRuss Allbery
default ACLs. Remove autocreation support from create, which now requires that one be on the ADMIN ACL, and from get and store. The wallet client will soon know how to do the right thing.
2008-02-07Add a check command to the wallet server to determine whether an objectRuss Allbery
already exists.
2008-02-07When creating a srvtab based on a just-downloaded keytab, extract theRuss Allbery
srvtab key before merging the keytab into an existing file. Otherwise, if the new keys had a lower kvno than the old keys (possible after deleting and recreating the object), the wrong key would be extracted for the srvtab.
2008-02-07Add UNUSED markers for older versions of Kerberos.Russ Allbery
2008-01-19The wallet client now supports a -u option, saying to obtain KerberosRuss Allbery
credentials for the given user and use those for authentication rather than using an existing ticket cache.
2008-01-19If -f is used and the output file name with ".new" appended alreadyRuss Allbery
exists, unlink it first and then create it safely rather than truncating it. This is much safer when creating files in a world-writable directory. Also add documentation for keytab merging.
2008-01-19When downloading a keytab to a file that already exists, merge the newRuss Allbery
keytab keys into that file rather than moving aside the old keytab and creating a new keytab with only the new keys. Also fix get handling in the client for all types other than keytabs. This isn't visible yet since the server doesn't yet support other types of objects.