Hello,
I found strage behavior around SecurityManager.
First, why security manager loads some secury keys at system start up?
SecurityManager>>startUp
"Attempt to load existing keys"
self loadSecurityKeys.
(privateKeyPair == nil
and:[self isInRestrictedMode not
and:[self automaticKeyGeneration]]) ifTrue:[
self generateKeyPairInBackground.
].
Second, I found bug (maybe)
When I on WindowsXP under user with russion name
SecurityManager>>loadSecurityKeys failed.
Reason is SecurityManager>>primSecureUserDirectory returns abracadabra
system path. I inspect it. It is not utf string, It is CP1251 encoded
string.
And when I change method to not encode pathname
secureUserDirectory
"SecurityManager default secureUserDirectory"
| dir |
dir := self primSecureUserDirectory.
^ dir
ifNil: [FileDirectory default pathName]
ifNotNil: [(FilePath pathName: dir isEncoded: true)
asSqueakPathName]
to
secureUserDirectory
"SecurityManager default secureUserDirectory"
| dir |
dir := self primSecureUserDirectory.
^ dir
ifNil: [FileDirectory default pathName]
ifNotNil: [(FilePath pathName: dir isEncoded: false)
asSqueakPathName]
System started without failures.
What I corrupt in system behavior with this changes?
And most interesting question. Why all this SecurityManager stuff needed for
system start up process?
Best regards,
Denis