'From etoys2.2 of 21 September 2007 [latest update: #1758] on 6 November 2007 at 7:15:10 pm'! "Change Set: keyLoc-bf Date: 6 November 2007 Author: Bert Freudenberg Look for owner.key in the right directory."! !SecurityManager methodsFor: 'fileIn/out' stamp: 'bf 11/6/2007 19:11'! loadOLPCOwnerKey "Load the OLPC owner's keys from Sugar's profile directory" "SecurityManager default loadOLPCOwnerKey" | fd loc key asn1 p q g y x | self isInRestrictedMode ifTrue:[^self]. "no point in even trying" loc := self secureUserDirectory, '/../../../'. "get it from the sugar profile directory" fd := FileDirectory on: loc. [key := (fd readOnlyFileNamed: 'owner.key') contentsOfEntireFile readStream] on: FileDoesNotExistException do: [:ex| ^self]. (key upTo: Character lf) = '-----BEGIN DSA PRIVATE KEY-----' ifFalse: [^self]. [ asn1 := Base64MimeConverter mimeDecodeToBytes: key upToEnd readStream. asn1 next = 48 ifFalse: [self error: 'ASN.1 sequence tag expected']. self asn1Length: asn1. "skip length of sequence" self asn1Integer: asn1. "ignore first number which is 0" p := self asn1Integer: asn1. q := self asn1Integer: asn1. g := self asn1Integer: asn1. y := self asn1Integer: asn1. x := self asn1Integer: asn1. ] on: Error do: [:ex | ^self]. privateKeyPair := {{p. q. g. x}. {p. q. g. y}} ! !