thanks a lot, now that you explain it again that clearly, I can see the difference. Somehow, I had in mind that those "crypting-objects" are wire-hard-coded, that the soft-toks just emulates some hardware, and that you just could forward your requests to that hard-coded logic, and get some answer. I didn't see that those algorithms could also be instances/objects that do something, that you could use like instances in the application code itself. I think I didn't figure that the tokens themselves are oop-things. But that's great.

The tpm I use, as long as I know, as no crypto-instances or almost none. Or calls to them aren't implemented in TrouSerS. That's something I read when I installed opencryptoki and the tpm-kernelmodule.

I'll have to look at SDR again. Since I don't exactly understand how the soft-token in NSS is implemented, I hope SDR doesn't make calls to that token to encrypt, like if it was a crypto-device like you just explained. It's true that I haven't been deep enough to find the DES altorithm itself, in SDR. I hope it's somewhere in a library, not inside a token. Otherwise, if I take the key from another token, but use the soft-tok to encrypt, that's like if I used 2 different tokens and mixed up the key from one with the functions of the other. Would not be a great thing...

thanks!

Nelson B Bolyard schrieb:
On 2009-11-24 13:00 PST, Marc Kaeser wrote:

Are there unpersistant keys in a token? I'll also look for that point in the specs.

Yes, in the PKCS#11 model, *ALL* objects (key objects, cert objects, etc.)
live in tokens.  All crypto engines live in tokens, too, at least conceptually.

Some objects are persistent, and continue to live (albeit in a state of
suspended animation) when the token is removed from the slot, or is powered
off, or the process that is using them exits, or the process destroys the
"session" in which the object was created.  Those objects are called "token
objects" (an endless source of confusion).

Other objects are temporary.  They live in tokens, just like "token objects"
but, unlike "token objects", if the token is removed, or the process that
created them ends, or the process that created them destroys the session
in which they were created, then they vanish, forever, poof, gone.  They
are called "session objects" because their lifetime never exceeds the
lifetime of the session in which they were created.

"Session objects" that are keys are called "session keys".  "Token objects"
that are keys are called "token keys".  Similar conventions apply for certs
and other types of objects.

Again, all "session objects" and "token objects" live in tokens.  All the
PKCS#11 crypto engines exist (at least conceptually) in tokens.  When you
invoke any of the C_functions to do a crypto operations, you're asking a
token to do something with a crypto engine on that token, typically using
a key on that token (a "session key" or a "token key").
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to