Add rxgk_NewClientSecurityObject

Store the key, token, etc. in the class-private data.

Change-Id: I52f029483212bd9614d08696f730628ebbdb2277
Security index must be parameter to get_token

Since we're passing in a security object, we need to know which
index to use...

Change-Id: Ic173091ba9bb99e865c4d0d4acb127fa06505189
Return more things from get_token

Like, say, the token itself, as well as some tokeninfo and the
token master key.

Change-Id: I53bb5b7c2949562c09036ec8b2945d426ced4ce3
We need an rxgk_key back from get_token

Not just an RXGK_Data.

Change-Id: Icab3f8114730cc28f03c3831279052a3f210991a
Client security object doesn't need a kvno

Only the server needs to care, I think.

Probably means we don't need to track enctype, either, as that is
tracked within the rxgk_key, but leave it for now.

Change-Id: I1102da7cb93f68115a7ddd3c38e3d58c9e5cf720
fixup gss loop refactor

Be sure to initialize things if we're always freeing them.

Change-Id: I9de6c40c064b6c59ef9d83fe5d34ff174d43b4bc
Get a token over an rxgk connection

We call through our dummy methods that always return success.
Now we can start making them not-dummy!

Change-Id: Icd6f9d64f737b02e858bcae7fcc6c008e6ddf377
Data structures for per-connection security data

Also tidy up other comments.

Change-Id: I8f0ca07580090a1857e5412d069dd04acd128294
fixup NewClientSecurityObject

Check for allocation failures in both places, not just the first time.

Change-Id: Ic8fa3cf0efb2363ac1fab6137ba197c3517f9866
Include a union for security object privateData

We have client and server versions, but alias them for the first
field, which specifies which type is in use.
The union lets this aliasing be more correct by the standard.

Change-Id: I6581cbdd9ec4aed943b7361b39526727153cb5d5
Create and destroy connections

Destroy the security object on last close.

Change-Id: Iee79f072bccd202db658771cf1e5d29c0c411761
rxgk_server: check auth, get/create challenge

Using a random nonce brings in hcrypto.
We don't check the response (and the client drops it on the floor),
so nothing new yet.

Change-Id: I88905e42c31b70379aaf4a85ac642eb9b6a92ee9
Add copy_rxgkdata

A utility function to allocate and copy data from one RXGK_Data to another.

Change-Id: I13055027fa986158dbce5391f88391f5ba24755a
The token is just data, not an array of the same

One data blob contains the token.

Change-Id: I479e097a202f96f9df4aea6c120b792d35951ba5
The fixed-length nonce is encoded straightforwardly

Change-Id: I40f17035da77fe8c64c075f5a33745a358272375
Note need to do something with epoch and cid

Change-Id: I18f8a8eaba9c4e2684ed9febed750b0f655613d8
Implement GetResponse
Add decrypt_in_key

Analogous to encrypt_in_key.
No kvno is needed in the encrypted data here, as we already have the
keyblock in question.

Change-Id: I356c5fb9d6a9c04b1b93d0c57104790e977c7035
First crack at CheckResponse

Note that both we and the client are using the master key for
the connection, not a derived transport key.

Change-Id: If4994ccaee0cd60ee0e817ac015f0b01db8ab03c