SHA256 + no derEncodedDigestInfo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

SHA256 + no derEncodedDigestInfo

cdavidshaffer
I have certificates signed using SHA256 (these are the certificate authorities provided by Dropbox — attached).  These don’t work in VisualWorks 7.10.1 and newer as noted in the Security Guide:


It suggests a workaround but I don’t see how to directly apply this to certificate signatures except by hacking up Cincom’s code and if it were that easy I’d assume they wouldn't have this limitation in the first place.  I have attached a stack trace for reference.  Has anyone else hit this?  Anyone have a suggestion?

BTW, my Dropbox client is in the open repository and works very well in VW7.9 and older as long as you’re using a version that includes a working security package.

David

Unhandled exception: Message not understood: #derEncodedDigestInfo
Security.SHA256 class(Object)>>doesNotUnderstand:
Security.RSAPublicKey>>verify:of:hash:padding:
Xtreams.SecurityPublicKey>>verify:of:hash:padding:
optimized [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
BlockClosure>>cull:
ByteString(Object)>>ifNil:ifNotNil:
optimized [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
BlockClosure>>ensure:
optimized [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
optimized [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
BlockClosure>>cull:
Array(Object)>>ifNil:ifNotNil:
Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Security.X509.Certificate>>verifySignedBy:
Security.X509.Certificate>>verifyIssuedBy:
optimized [] in Security.X509.X509Registry>>verify:isIssuedBy:
BlockClosure>>on:do:
Security.X509.X509Registry>>verify:isIssuedBy:
optimized [] in [] in Security.X509.X509Registry>>validateCertificateChain:
BlockClosure>>cull:
Security.X509.Certificate(Object)>>ifNotNil:
optimized [] in Security.X509.X509Registry>>validateCertificateChain:
optimized [] in Collection>>inject:into:
Array(SequenceableCollection)>>do:
Array(Collection)>>inject:into:
Security.X509.X509Registry>>validateCertificateChain:
optimized [] in [] in Xtreams.TLSCertificateStore>>validate:for:
BlockClosure>>on:do:
optimized [] in Xtreams.TLSCertificateStore>>validate:for:
BlockClosure>>ifCurtailed:
Xtreams.TLSCertificateStore>>validate:for:
Xtreams.TLSSession>>validateCertificate:for:using:
Xtreams.TLSConnection>>validateCertificate:
Xtreams.TLSHandshake>>receiveCertificate
Xtreams.TLSRSAKeyExchange>>clientHandshake
Xtreams.TLSHandshake>>connect
BlockClosure>>tlsConnect:
optimized [] in Xtreams.TLSConnection>>connect:
Xtreams.TLSConnection>>writeProtectDo:
Xtreams.TLSConnection>>connect:
optimized [] in Net.TLSConnection>>startTLS
BlockClosure>>ifCurtailed:
Net.HttpsConnection(Net.TLSConnection)>>startTLS
Net.HttpsConnection(Net.TLSConnection)>>openStreamFor:port:timeout:
Net.HttpProtocolInterpreter(Net.NetProtocolInterpreter)>>connectToHost:port:timeout:
Net.HttpProtocolInterpreter>>connect
Net.HttpProtocolInterpreter>>executeRequest:
Net.HttpClient>>privateExecuteRequest
Net.HttpClient>>executeRequestDo:
Net.HttpClient>>executeAndGetResponse
Net.HttpClient>>executeRequest:
optimized [] in Net.HttpRequest>>execute
BlockClosure>>ensure:
Net.HttpRequest>>execute
Dropbox.RESTClient>>request:url:postParams:body:headers:rawResponse:
Dropbox.RESTClient>>postUrl:headers:params:rawResponse:
Dropbox.DropboxSession>>obtainRequestToken
UndefinedObject>>unboundMethod
UndefinedObject(Object)>>performMethod:arguments:
UndefinedObject(Object)>>performMethod:
TextEditorController>>evaluateCompiled:
optimized [] in TextEditorController>>evaluateSelection
BlockClosure>>ensure:
Cursor>>showWhile:
TextEditorController>>evaluateSelection
optimized [] in TextEditorController>>doIt
BlockClosure>>on:do:
TextEditorController>>doIt
WorkspacePage>>doIt
Workbook(AbstractWorkspace)>>smalltalkDoIt
MenuBarButtonController>>dispatchMenuSymbol:
MenuBarButtonController>>dispatchMenuSelection:
optimized [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
BlockClosure>>ensure:
optimized [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
BlockClosure>>on:do:
MacOSXMenuBarButtonView(MenuBarButtonView)>>processCommandEventAsMenuItemAccessor:
[] in MacOSXMenuBar(MenuBar)>>commandEvent:
OrderedCollection>>do:
MacOSXMenuBar(MenuBar)>>commandEvent:
CommandEvent>>dispatchTo:
optimized [] in KeyboardProcessor>>broadcastCommandEvent:
BlockClosure>>cull:
MacOSXMenuBar(Object)>>ifNotNil:
KeyboardProcessor>>broadcastCommandEvent:
[] in KeyboardProcessor>>processKeyboardEvent:
BlockClosure>>cull:
CommandEvent(Object)>>ifNotNil:
KeyboardProcessor>>processKeyboardEvent:
KeyboardProcessor>>processKeyboardEvent:for:
EventDispatcher>>dispatchEvent:
KeyPressedEvent(Event)>>dispatch
KeyPressedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Security.SHA256 class(Object)>>doesNotUnderstand:
Receiver:
a Security.SHA256 class
Instance Variables:
superclass = Security.SHAHash
methodDict = a MethodDictionary[13]
format = 16409
subclasses = nil
instanceVariables = an Array[9]
organization = ('private-algorithm' #Sigma256_0: #Sigma256_1: #doBlock #prepareWorkingRegisters #sigma256_0: #sigma256_1: #updateDigestRegisters #updateWAt:)
('initialize-release' #initialize)
('services-basic' #reset)
('private-digest' #backupRegisters #restoreRegisters: #writeDigestInto:startingAt:)

name = #SHA256
classPool = a NameSpaceOfClass[1]
environment = a NameSpace[66]
Arguments:
aMessage = a Message with selector: #derEncodedDigestInfo and arguments: #()
Temporaries:
excpt = a MessageNotUnderstood
resumeValue = nil
Context PC = 25

----------------------------------------------------------------------
Security.RSAPublicKey>>verify:of:hash:padding:
Receiver:
a Security.RSAPublicKey
Instance Variables:
n = 23464936089672074238558227240738642188401652750559322139110223472800898724452171193507830144175059459702529905676615071074993228771373136540482674196545025295733738196449583666610315977490986925474739841268554665863093665527055011951462798054655387514678326260004075182975117421140397782473200702068600919372009187240660911098390145147467211797777009862056159391483377819086435980778585967055870497149033762110952962582355410428105094882392320868563187123866160347835848217107617930191075074037337201254401445272297107644739005851884807909929228393436982535239808806968215135043030563617161016982313909247836020691707
e = 65537
Arguments:
signature = a ByteArray[256]
digestBytes = a ByteArray[32]
hashID = 'SHA256'
paddingID = 'PKCS1'
Temporaries:
bytes = nil
hash = Security.SHA256
Context PC = 22

----------------------------------------------------------------------
Xtreams.SecurityPublicKey>>verify:of:hash:padding:
Receiver:
a Xtreams.SecurityPublicKey
Instance Variables:
type = #RSA
key = a Security.RSAPublicKey
Arguments:
signature = a ByteArray[256]
digestBytes = a ByteArray[32]
hashID = 'SHA256'
paddingID = 'PKCS1'
Context PC = 8

----------------------------------------------------------------------
optimized [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Receiver:
an UndefinedObject
Temporaries:
.key = a Xtreams.SecurityPublicKey
signature = a ByteArray[256]
.digest = a ByteArray[32]
.hash = 'SHA256'
.padding = 'PKCS1'
Context PC = 11

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
outerContext = nil
copiedValues = an Array[5]
Arguments:
anObject = 'PKCS1'
Context PC = 10

----------------------------------------------------------------------
ByteString(Object)>>ifNil:ifNotNil:
Receiver:
a ByteString
Arguments:
nilBlock = BlockClosure [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
notNilBlock = BlockClosure [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Context PC = 4

----------------------------------------------------------------------
optimized [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Receiver:
an UndefinedObject
Temporaries:
.aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
.key = a Xtreams.SecurityPublicKey
signature = a ByteArray[256]
.padding = 'PKCS1'
.digest = a ByteArray[32]
.hash = 'SHA256'
Context PC = 24

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
outerContext = nil
copiedValues = an Array[6]
Arguments:
aBlock = BlockClosure [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Temporaries:
result = nil
Context PC = 4

----------------------------------------------------------------------
optimized [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Receiver:
an UndefinedObject
Arguments:
pkAlg = 'RSA'
hash = 'SHA256'
padding = 'PKCS1'
Temporaries:
key = a Xtreams.SecurityPublicKey
signature = a ByteArray[256]
digest = a ByteArray[32]
.aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
.anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 39

----------------------------------------------------------------------
optimized [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Receiver:
an UndefinedObject
Arguments:
arguments = an Array[3]
Temporaries:
.aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
.anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 11

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anObject = an Array[3]
Context PC = 15

----------------------------------------------------------------------
Array(Object)>>ifNil:ifNotNil:
Receiver:
an Array
Arguments:
nilBlock = BlockClosure [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
notNilBlock = BlockClosure [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Context PC = 4

----------------------------------------------------------------------
Security.X509.AlgorithmIdentifier>>verify:isSignedBy:
Receiver:
an Security.X509.AlgorithmIdentifier
Instance Variables:
oid = OID:sha256WithRSAEncryption/1.2.840.113549.1.1.11
oidDescription = 'sha256WithRSAEncryption'
parameters = nil
Arguments:
aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 14

----------------------------------------------------------------------
Security.X509.Certificate>>verifySignedBy:
Receiver:
a Security.X509.Certificate
Instance Variables:
encoding = <1(5)1319>
tbsCertificate = a Security.X509.TBSCertificate
signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption
signatureValue = BitString(256/0/84...57)
signature = a ByteArray[256]
Arguments:
certificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 21

----------------------------------------------------------------------
Security.X509.Certificate>>verifyIssuedBy:
Receiver:
a Security.X509.Certificate
Instance Variables:
encoding = <1(5)1319>
tbsCertificate = a Security.X509.TBSCertificate
signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption
signatureValue = BitString(256/0/84...57)
signature = a ByteArray[256]
Arguments:
certificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 18

----------------------------------------------------------------------
optimized [] in Security.X509.X509Registry>>verify:isIssuedBy:
Receiver:
an UndefinedObject
Temporaries:
.subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
.issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in Security.X509.X509Registry>>verify:isIssuedBy:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anExceptionSelector = Security.X509.IssuerMismatch
handlerBlock = BlockClosure [] in Security.X509.X509Registry>>verify:isIssuedBy:
Context PC = 18

----------------------------------------------------------------------
Security.X509.X509Registry>>verify:isIssuedBy:
Receiver:
a Security.X509.X509Registry
Instance Variables:
trustedCertificates = a Set[15]
revokedCertificates = a Set[0]
strict = false
Arguments:
subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Context PC = 15

----------------------------------------------------------------------
optimized [] in [] in Security.X509.X509Registry>>validateCertificateChain:
Receiver:
an UndefinedObject
Temporaries:
.self = a Security.X509.X509Registry
.issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
.subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in Security.X509.X509Registry>>validateCertificateChain:
outerContext = nil
copiedValues = an Array[3]
Arguments:
anObject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
Context PC = 10

----------------------------------------------------------------------
Security.X509.Certificate(Object)>>ifNotNil:
Receiver:
a Security.X509.Certificate
Instance Variables:
encoding = <1(5)1319>
tbsCertificate = a Security.X509.TBSCertificate
signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption
signatureValue = BitString(256/0/84...57)
signature = a ByteArray[256]
Arguments:
aBlock = BlockClosure [] in [] in Security.X509.X509Registry>>validateCertificateChain:
Context PC = 4

----------------------------------------------------------------------
optimized [] in Security.X509.X509Registry>>validateCertificateChain:
Receiver:
an UndefinedObject
Arguments:
subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Temporaries:
.self = a Security.X509.X509Registry
Context PC = 24

----------------------------------------------------------------------
optimized [] in Collection>>inject:into:
Receiver:
an UndefinedObject
Arguments:
each = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>
Temporaries:
.binaryBlock = BlockClosure [] in Security.X509.X509Registry>>validateCertificateChain:
nextValue = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
Context PC = 9

----------------------------------------------------------------------
Array(SequenceableCollection)>>do:
Receiver:
an Array
Arguments:
aBlock = BlockClosure [] in Collection>>inject:into:
Temporaries:
i = 2
Context PC = 19

----------------------------------------------------------------------
Array(Collection)>>inject:into:
Receiver:
an Array
Arguments:
thisValue = nil
binaryBlock = BlockClosure [] in Security.X509.X509Registry>>validateCertificateChain:
Temporaries:
nextValue = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>
Context PC = 15

----------------------------------------------------------------------
Security.X509.X509Registry>>validateCertificateChain:
Receiver:
a Security.X509.X509Registry
Instance Variables:
trustedCertificates = a Set[15]
revokedCertificates = a Set[0]
strict = false
Arguments:
chain = an Array[3]
Context PC = 11

----------------------------------------------------------------------
optimized [] in [] in Xtreams.TLSCertificateStore>>validate:for:
Receiver:
an UndefinedObject
Temporaries:
.self = a Xtreams.TLSCertificateStore
.chain = an Array[3]
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in Xtreams.TLSCertificateStore>>validate:for:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anExceptionSelector = Security.X509.X509Error
handlerBlock = BlockClosure [] in [] in Xtreams.TLSCertificateStore>>validate:for:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Xtreams.TLSCertificateStore>>validate:for:
Receiver:
an UndefinedObject
Temporaries:
.self = a Xtreams.TLSCertificateStore
.chain = an Array[3]
alert = nil
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>ifCurtailed:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in Xtreams.TLSCertificateStore>>validate:for:
outerContext = nil
copiedValues = an Array[3]
Arguments:
terminationBlock = BlockClosure [] in Xtreams.TLSCertificateStore>>validate:for:
Context PC = 4

----------------------------------------------------------------------
Xtreams.TLSCertificateStore>>validate:for:
Receiver:
a Xtreams.TLSCertificateStore
Instance Variables:
owned = an OrderedCollection[0]
known = a Set[0]
trusted = a Security.X509.X509Registry
Arguments:
chain = an Array[3]
connection = a Xtreams.TLSConnection
Temporaries:
alert = nil
Context PC = 25

----------------------------------------------------------------------
Xtreams.TLSSession>>validateCertificate:for:using:
Receiver:
a Xtreams.TLSSession
Instance Variables:
nextLink = nil
previousLink = nil
id = nil
key = 'api.dropbox.com:443'
created = nil
compression = null
suite = TLS_RSA_WITH_AES_256_CBC_SHA256
versionMinor = 3
certificate = nil
peerCertificate = an Array[3]
subjectVerifier = nil
isServer = false
secret = nil
Arguments:
bytes = an Array[3]
connection = a Xtreams.TLSConnection
certificates = a Xtreams.TLSCertificateStore
Context PC = 10

----------------------------------------------------------------------
Xtreams.TLSConnection>>validateCertificate:
Receiver:
a Xtreams.TLSConnection
Instance Variables:
subscriptionRegistry = a SubscriptionRegistry
context = a Xtreams.TLSContext
session = TLSSession 'api.dropbox.com:443'
handshake = a Xtreams.TLSHandshake
writeLock = nil
output = TLSRecordWriteStream
TLSMarshalingWriteStream
BufferedWriteStream buffered: 32768
#[]
ExternalWriteStream
an active Net.HttpSocketAccessor
input = TLSRecordReadStream.FMB
TLSMarshalingReadStream.CFJ
ExternalReadStream.PN
an active Net.HttpSocketAccessor
socket = an active Net.HttpSocketAccessor
client_random = a ByteArray[32]
server_random = a ByteArray[32]
write_mac_key = nil
read_mac_key = nil
write_key = nil
read_key = nil
write_iv = nil
read_iv = nil
Arguments:
certificate = <- TLSCertificate
Context PC = 10

----------------------------------------------------------------------
Xtreams.TLSHandshake>>receiveCertificate
Receiver:
a Xtreams.TLSHandshake
Instance Variables:
connection = a Xtreams.TLSConnection
verifier = BlockClosure [] in [] in Net.TLSConnection>>startTLS
clientHello = -> TLSClientHello(3.3; suites: 10; extensions: #signature_algorithms)
serverHello = <- TLSServerHello(3.3; TLS_RSA_WITH_AES_256_CBC_SHA256)
writing = DuplicateWriteStream
TLSRecordWriteStream
TLSMarshalingWriteStream
BufferedWriteStream buffered: 32768
#[]
ExternalWriteStream
an active Net.HttpSocketAccessor
reading = DuplicateReadStream.GIH
StitchReadStream.DBP
BlockClosureReadStream.AKG
BlockClosure [] in [] in [] in Xtreams.TLSRecordReadStream>>initiateRuns
resuming = false
digest = DigestWriteStream
NullWriteStream
nil
keyExchange = a Xtreams.TLSRSAKeyExchange
queue = an OrderedCollection[0]
nextMessage = nil
signatureAlgorithms = TLSSignatureAlgorithms: dsa/sha1
Temporaries:
certificate = <- TLSCertificate
subject = nil
Context PC = 9

----------------------------------------------------------------------
Xtreams.TLSRSAKeyExchange>>clientHandshake
Receiver:
a Xtreams.TLSRSAKeyExchange
Instance Variables:
handshake = a Xtreams.TLSHandshake
connection = a Xtreams.TLSConnection
Temporaries:
pms = nil
epms = nil
kex = nil
Context PC = 3

----------------------------------------------------------------------
Xtreams.TLSHandshake>>connect
Receiver:
a Xtreams.TLSHandshake
Instance Variables:
connection = a Xtreams.TLSConnection
verifier = BlockClosure [] in [] in Net.TLSConnection>>startTLS
clientHello = -> TLSClientHello(3.3; suites: 10; extensions: #signature_algorithms)
serverHello = <- TLSServerHello(3.3; TLS_RSA_WITH_AES_256_CBC_SHA256)
writing = DuplicateWriteStream
TLSRecordWriteStream
TLSMarshalingWriteStream
BufferedWriteStream buffered: 32768
#[]
ExternalWriteStream
an active Net.HttpSocketAccessor
reading = DuplicateReadStream.GIH
StitchReadStream.DBP
BlockClosureReadStream.AKG
BlockClosure [] in [] in [] in Xtreams.TLSRecordReadStream>>initiateRuns
resuming = false
digest = DigestWriteStream
NullWriteStream
nil
keyExchange = a Xtreams.TLSRSAKeyExchange
queue = an OrderedCollection[0]
nextMessage = nil
signatureAlgorithms = TLSSignatureAlgorithms: dsa/sha1
Context PC = 62

----------------------------------------------------------------------
BlockClosure>>tlsConnect:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in Net.TLSConnection>>startTLS
outerContext = nil
copiedValues = a Net.HttpsConnection
Arguments:
handshake = a Xtreams.TLSHandshake
Context PC = 7

----------------------------------------------------------------------
optimized [] in Xtreams.TLSConnection>>connect:
Receiver:
an UndefinedObject
Temporaries:
.subject = BlockClosure [] in [] in Net.TLSConnection>>startTLS
.self = a Xtreams.TLSConnection
Context PC = 8

----------------------------------------------------------------------
Xtreams.TLSConnection>>writeProtectDo:
Receiver:
a Xtreams.TLSConnection
Instance Variables:
subscriptionRegistry = a SubscriptionRegistry
context = a Xtreams.TLSContext
session = TLSSession 'api.dropbox.com:443'
handshake = a Xtreams.TLSHandshake
writeLock = nil
output = TLSRecordWriteStream
TLSMarshalingWriteStream
BufferedWriteStream buffered: 32768
#[]
ExternalWriteStream
an active Net.HttpSocketAccessor
input = TLSRecordReadStream.FMB
TLSMarshalingReadStream.CFJ
ExternalReadStream.PN
an active Net.HttpSocketAccessor
socket = an active Net.HttpSocketAccessor
client_random = a ByteArray[32]
server_random = a ByteArray[32]
write_mac_key = nil
read_mac_key = nil
write_key = nil
read_key = nil
write_iv = nil
read_iv = nil
Arguments:
aBlock = BlockClosure [] in Xtreams.TLSConnection>>connect:
Context PC = 7

----------------------------------------------------------------------
Xtreams.TLSConnection>>connect:
Receiver:
a Xtreams.TLSConnection
Instance Variables:
subscriptionRegistry = a SubscriptionRegistry
context = a Xtreams.TLSContext
session = TLSSession 'api.dropbox.com:443'
handshake = a Xtreams.TLSHandshake
writeLock = nil
output = TLSRecordWriteStream
TLSMarshalingWriteStream
BufferedWriteStream buffered: 32768
#[]
ExternalWriteStream
an active Net.HttpSocketAccessor
input = TLSRecordReadStream.FMB
TLSMarshalingReadStream.CFJ
ExternalReadStream.PN
an active Net.HttpSocketAccessor
socket = an active Net.HttpSocketAccessor
client_random = a ByteArray[32]
server_random = a ByteArray[32]
write_mac_key = nil
read_mac_key = nil
write_key = nil
read_key = nil
write_iv = nil
read_iv = nil
Arguments:
subject = BlockClosure [] in [] in Net.TLSConnection>>startTLS
Context PC = 16

----------------------------------------------------------------------
optimized [] in Net.TLSConnection>>startTLS
Receiver:
an UndefinedObject
Temporaries:
.self = a Net.HttpsConnection
Context PC = 10

----------------------------------------------------------------------
BlockClosure>>ifCurtailed:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in Net.TLSConnection>>startTLS
outerContext = nil
copiedValues = a Net.HttpsConnection
Arguments:
terminationBlock = BlockClosure [] in Net.TLSConnection>>startTLS
Context PC = 4

----------------------------------------------------------------------
Net.HttpsConnection(Net.TLSConnection)>>startTLS
Receiver:
a Net.HttpsConnection
Instance Variables:
stream = an ExternalReadAppendStream
settings = a Net.HttpSettings
tlsConnection = a Xtreams.TLSConnection
hostName = 'api.dropbox.com'
socket = an active Net.HttpSocketAccessor
port = 443
Context PC = 31

----------------------------------------------------------------------
Net.HttpsConnection(Net.TLSConnection)>>openStreamFor:port:timeout:
Receiver:
a Net.HttpsConnection
Instance Variables:
stream = an ExternalReadAppendStream
settings = a Net.HttpSettings
tlsConnection = a Xtreams.TLSConnection
hostName = 'api.dropbox.com'
socket = an active Net.HttpSocketAccessor
port = 443
Arguments:
hostNameString = 'api.dropbox.com'
aNumber = 443
tmNumber = 20000
Context PC = 14

----------------------------------------------------------------------
Net.HttpProtocolInterpreter(Net.NetProtocolInterpreter)>>connectToHost:port:timeout:
Receiver:
a Net.HttpProtocolInterpreter
Instance Variables:
connection = a Net.HttpsConnection
settings = a Net.HttpSettings
authPolicy = nil
proxyAuthPolicy = nil
cookieAgent = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

hostName = 'api.dropbox.com'
portNumber = 443
readingOptions = a Net.HttpReadingOptions
writingOptions = a Net.HttpWritingOptions
Arguments:
aHostName = 'api.dropbox.com'
aNumber = 443
tmNumber = 20000
Context PC = 9

----------------------------------------------------------------------
Net.HttpProtocolInterpreter>>connect
Receiver:
a Net.HttpProtocolInterpreter
Instance Variables:
connection = a Net.HttpsConnection
settings = a Net.HttpSettings
authPolicy = nil
proxyAuthPolicy = nil
cookieAgent = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

hostName = 'api.dropbox.com'
portNumber = 443
readingOptions = a Net.HttpReadingOptions
writingOptions = a Net.HttpWritingOptions
Context PC = 35

----------------------------------------------------------------------
Net.HttpProtocolInterpreter>>executeRequest:
Receiver:
a Net.HttpProtocolInterpreter
Instance Variables:
connection = a Net.HttpsConnection
settings = a Net.HttpSettings
authPolicy = nil
proxyAuthPolicy = nil
cookieAgent = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

hostName = 'api.dropbox.com'
portNumber = 443
readingOptions = a Net.HttpReadingOptions
writingOptions = a Net.HttpWritingOptions
Arguments:
aRequest = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

Context PC = 11

----------------------------------------------------------------------
Net.HttpClient>>privateExecuteRequest
Receiver:
a Net.HttpClient
Instance Variables:
user = nil
hostName = nil
portNumber = nil
clientPI = a Net.HttpProtocolInterpreter
retries = nil
timeout = nil
delaySeconds = nil
state = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

protocol = nil
Context PC = 11

----------------------------------------------------------------------
Net.HttpClient>>executeRequestDo:
Receiver:
a Net.HttpClient
Instance Variables:
user = nil
hostName = nil
portNumber = nil
clientPI = a Net.HttpProtocolInterpreter
retries = nil
timeout = nil
delaySeconds = nil
state = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

protocol = nil
Arguments:
aBlock = nil
Temporaries:
streamx = nil
Context PC = 4

----------------------------------------------------------------------
Net.HttpClient>>executeAndGetResponse
Receiver:
a Net.HttpClient
Instance Variables:
user = nil
hostName = nil
portNumber = nil
clientPI = a Net.HttpProtocolInterpreter
retries = nil
timeout = nil
delaySeconds = nil
state = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

protocol = nil
Context PC = 11

----------------------------------------------------------------------
Net.HttpClient>>executeRequest:
Receiver:
a Net.HttpClient
Instance Variables:
user = nil
hostName = nil
portNumber = nil
clientPI = a Net.HttpProtocolInterpreter
retries = nil
timeout = nil
delaySeconds = nil
state = nil
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

protocol = nil
Arguments:
aRequest = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

Context PC = 7

----------------------------------------------------------------------
optimized [] in Net.HttpRequest>>execute
Receiver:
an UndefinedObject
Temporaries:
.client = aHttpClient on: api.dropbox.com:443
.self = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

Context PC = 6

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in Net.HttpRequest>>execute
outerContext = nil
copiedValues = an Array[2]
Arguments:
aBlock = BlockClosure [] in Net.HttpRequest>>execute
Temporaries:
result = nil
Context PC = 4

----------------------------------------------------------------------
Net.HttpRequest>>execute
Receiver:
a Net.HttpRequest
Instance Variables:
source = nil
parent = nil
value = ------ (172 bytes) -----

header = Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

headerCharset = nil
readingOptions = a Net.HttpReadingOptions
writingOptions = a Net.HttpWritingOptions
nextNamespaceId = nil
requestLine = POST /1/oauth/request_token HTTP/1.1
Temporaries:
client = aHttpClient on: api.dropbox.com:443
Context PC = 16

----------------------------------------------------------------------
Dropbox.RESTClient>>request:url:postParams:body:headers:rawResponse:
Receiver:
a Dropbox.RESTClient
Arguments:
method = 'POST'
postParams = a Dictionary[6]
theBody = nil
theHeaders = a Dictionary[0]
theRawResponse = true
Temporaries:
headers = a Dictionary[1]
request = POST /1/oauth/request_token HTTP/1.1
Content-type: application/x-www-form-urlencoded
Content-length: 172
User-agent: UnofficialVisualWorksSDK1.0

------ (172 bytes) -----

body = nil
rawResponse = true
Context PC = 66

----------------------------------------------------------------------
Dropbox.RESTClient>>postUrl:headers:params:rawResponse:
Receiver:
a Dropbox.RESTClient
Arguments:
headers = a Dictionary[0]
params = a Dictionary[6]
aBoolean = true
Context PC = 10

----------------------------------------------------------------------
Dropbox.DropboxSession>>obtainRequestToken
Receiver:
a Dropbox.DropboxSession
Instance Variables:
consumerCreds = a Dropbox.OAuthToken (key=biz,secret=baz)
token = nil
requestToken = nil
accessType = 'app_folder'
root = 'sandbox'
locale = nil
Temporaries:
headers = a Dictionary[0]
params = a Dictionary[6]
response = nil
Context PC = 35

----------------------------------------------------------------------
UndefinedObject>>unboundMethod
Receiver:
an UndefinedObject
Context PC = 15

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:arguments:
Receiver:
an UndefinedObject
Arguments:
method = AnnotatedMethod UndefinedObject>>unboundMethod
args = an Array[0]
Context PC = 5

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:
Receiver:
an UndefinedObject
Arguments:
method = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 5

----------------------------------------------------------------------
TextEditorController>>evaluateCompiled:
Receiver:
a TextEditorController
Instance Variables:
model = a PluggableAdaptor
view = a TextEditorView
menuHolder = a ValueHolder on: a Menu
performer = a WorkspacePage
beginTypeInIndex = nil
anchorIndex = 501
emphasisHere = nil
dispatchTable = a DispatchTable
charComposer = a CharacterComposer
textHasChanged = true
feelPolicy = a MotifFeelPolicy
supportCodeEditingFeels = true
localMenuItems = an Array[21]
extendingDown = true
keyboardHook = nil
readOnly = false
accepted = false
autoAccept = false
continuousAccept = false
tabMeansNextField = true
tabRequiresControl = true
dispatcher = an UIDispatcher
selectable = false
maxChars = nil
nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]
Arguments:
aMethod = AnnotatedMethod UndefinedObject>>unboundMethod
Temporaries:
context = nil
Context PC = 13

----------------------------------------------------------------------
optimized [] in TextEditorController>>evaluateSelection
Receiver:
an UndefinedObject
Temporaries:
.self = a TextEditorController
.code = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in TextEditorController>>evaluateSelection
outerContext = nil
copiedValues = an Array[2]
Arguments:
aBlock = BlockClosure [] in Cursor>>showWhile:
Temporaries:
result = nil
Context PC = 4

----------------------------------------------------------------------
Cursor>>showWhile:
Receiver:
a Cursor
Instance Variables:
errorCode = 0
handle = a ByteArray[4]
image = Depth1Image(extent: 16 @ 16 depth: 1)
mask = Depth1Image(extent: 16 @ 16 depth: 1)
hotSpot = 1 @ 1
name = 'xeq'
Arguments:
aBlock = BlockClosure [] in TextEditorController>>evaluateSelection
Temporaries:
oldcursor = Cursor normal
Context PC = 23

----------------------------------------------------------------------
TextEditorController>>evaluateSelection
Receiver:
a TextEditorController
Instance Variables:
model = a PluggableAdaptor
view = a TextEditorView
menuHolder = a ValueHolder on: a Menu
performer = a WorkspacePage
beginTypeInIndex = nil
anchorIndex = 501
emphasisHere = nil
dispatchTable = a DispatchTable
charComposer = a CharacterComposer
textHasChanged = true
feelPolicy = a MotifFeelPolicy
supportCodeEditingFeels = true
localMenuItems = an Array[21]
extendingDown = true
keyboardHook = nil
readOnly = false
accepted = false
autoAccept = false
continuousAccept = false
tabMeansNextField = true
tabRequiresControl = true
dispatcher = an UIDispatcher
selectable = false
maxChars = nil
nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]
Temporaries:
code = AnnotatedMethod UndefinedObject>>unboundMethod
result = nil
Context PC = 14

----------------------------------------------------------------------
optimized [] in TextEditorController>>doIt
Receiver:
an UndefinedObject
Temporaries:
.self = a TextEditorController
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in TextEditorController>>doIt
outerContext = nil
copiedValues = a TextEditorController
Arguments:
anExceptionSelector = CompilationError
handlerBlock = BlockClosure [] in TextEditorController>>doIt
Context PC = 18

----------------------------------------------------------------------
TextEditorController>>doIt
Receiver:
a TextEditorController
Instance Variables:
model = a PluggableAdaptor
view = a TextEditorView
menuHolder = a ValueHolder on: a Menu
performer = a WorkspacePage
beginTypeInIndex = nil
anchorIndex = 501
emphasisHere = nil
dispatchTable = a DispatchTable
charComposer = a CharacterComposer
textHasChanged = true
feelPolicy = a MotifFeelPolicy
supportCodeEditingFeels = true
localMenuItems = an Array[21]
extendingDown = true
keyboardHook = nil
readOnly = false
accepted = false
autoAccept = false
continuousAccept = false
tabMeansNextField = true
tabRequiresControl = true
dispatcher = an UIDispatcher
selectable = false
maxChars = nil
nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]
Context PC = 20

----------------------------------------------------------------------
WorkspacePage>>doIt
Receiver:
a WorkspacePage
Instance Variables:
dependents = a PluggableAdaptor
builder = an UIBuilder
uiSession = nil
eventHandlers = nil
workspace = a Workbook
label = an UserMessage('Page 1', #Page1, #dialogs)
verboseLabel = nil
filename = nil
fileTimestamp = nil
textModel = a PluggableAdaptor
unacceptedText = nil
savedSelection = an Array[2]
savedFileTimestamp = nil
textModelOverride = a ValueHolder on: Text for '| pem bundle |
pem := (HttpClient get: ''http://curl.haxx.se/ca/cacert.pem'') contents.
bundle := CertificateFileReader new readFrom: pem readStream.
X509Registry trustedCertificates addAll: bundle.

pem := ''trusted-certs.crt'' asFilename.
bundle := CertificateFileReader new readFrom: pem readStream.
X509Registry trustedCertificates addAll: bundle.


session := DropboxSession
consumerKey: ''5patmmhoipec1v8'' 
consumerSecret: ''xhgqndvlhvid37p'' 
accessType: ''app_folder'' 
locale: nil .
rt := session obtainRequestToken.
url := session buildAuthorizeUrlRequestToken: rt callback: nil.
self halt: ''Authenticate at: '' , url, '' then press proceed.''.
session obtainAccessToken.
client := DropboxClient session: session client: Dropbox.RESTClient new.

client accountInfo.

client putFileTo: ''frog.pdf'' file: ''/home/shaffer/Desktop/ToReadSoon/weave.pdf'' overwrite: false parentRev: nil.

client getFileMetadata: ''frog.pdf'' rev: nil.

client delta: nil.

client fileCreateFolder: ''new_folder''.

client fileDelete: ''new_folder''.

client fileMoveFrom: ''frog.pdf'' to: ''cat.pdf''

client metadataPath: ''/''.

client thumbnail: ''cat.pdf''.

client revisionsPath: ''cat.pdf'' revLimit: nil.

client mediaPath: ''cat.pdf''.

client sharePath: ''cat.pdf''.

client getFile: ''Exam1.tex'' rev: nil.

cr := client createCopyRef: ''Exam1.tex''.
client fileCreateFolder: ''Foo''.
client addCopyRef: cr to: ''/Foo/Blah.tex''.

client fileMoveFrom: ''/Foo/Dog.tex'' to: ''/Foo/Cat.tex''.

md := client metadataPath: ''/Foo/Cat.tex''.
client putFileTo: ''/Foo/Cat.tex'' stream: #(65 66 67) readStream overwrite: true parentRev: (md at: ''rev'').

client getFile: ''/Foo/Cat.tex'' rev: nil.

client restorePath: ''/Foo/Cat.tex'' rev: (md at: ''rev'').

client searchPath: ''/Foo'' query: ''Cat'' fileLimit: 10 includeDeleted: false.'
Context PC = 20

----------------------------------------------------------------------
Workbook(AbstractWorkspace)>>smalltalkDoIt
Receiver:
a Workbook
Instance Variables:
dependents = a ScheduledWindow 5106208
builder = an UIBuilder
uiSession = a ControlManager
eventHandlers = nil
locals = a WorkspaceVariablePool[6]
importAll = true
specificImports = an Array[3]
importSummaryHolder = a ValueHolder on: 'All'
pageExplanationHolder = a ValueHolder on: 'Text or Smalltalk code'
statusBarVisible = true
encodingChannel = a ValueHolder on: #Source
menuBarHolder = a ValueHolder on: a Menu
pageHolder = a SelectionInList
lastInstalledPage = a WorkspacePage
Context PC = 5

----------------------------------------------------------------------
MenuBarButtonController>>dispatchMenuSymbol:
Receiver:
a MenuBarButtonController
Instance Variables:
model = nil
view = a MacOSXMenuBarButtonView
highlightOnOpen = false
Arguments:
menuSelection = #smalltalkDoIt
Context PC = 38

----------------------------------------------------------------------
MenuBarButtonController>>dispatchMenuSelection:
Receiver:
a MenuBarButtonController
Instance Variables:
model = nil
view = a MacOSXMenuBarButtonView
highlightOnOpen = false
Arguments:
menuSelection = #smalltalkDoIt
Context PC = 17

----------------------------------------------------------------------
optimized [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
Receiver:
an UndefinedObject
Temporaries:
.self = a MacOSXMenuBarButtonView
.theValue = #smalltalkDoIt
Context PC = 12

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
outerContext = nil
copiedValues = an Array[2]
Arguments:
aBlock = BlockClosure [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
Temporaries:
result = nil
Context PC = 4

----------------------------------------------------------------------
optimized [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
Receiver:
an UndefinedObject
Temporaries:
.self = a MacOSXMenuBarButtonView
.theValue = #smalltalkDoIt
Context PC = 14

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anExceptionSelector = VetoAction
handlerBlock = BlockClosure [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:
Context PC = 18

----------------------------------------------------------------------
MacOSXMenuBarButtonView(MenuBarButtonView)>>processCommandEventAsMenuItemAccessor:
Receiver:
a MacOSXMenuBarButtonView
Instance Variables:
container = a BoundedWrapper on: a MacOSXMenuBarButtonView
eventHandlers = nil
properties = nil
model = nil
controller = a MenuBarButtonController
state = a WidgetState
isInTransition = true
latestValue = nil
referenceValue = true
label = Label for 'Smalltalk'
textStyle = a TextAttributes
menuHolder = a Menu
menuBar = a MacOSXMenuBar
Arguments:
aCommandEvent = a CommandEvent Set (#doIt)
Temporaries:
theMenu = a Menu
matchingMenuItem = a MenuItem 'Do it'
theValue = #smalltalkDoIt
Context PC = 45

----------------------------------------------------------------------
[] in MacOSXMenuBar(MenuBar)>>commandEvent:
Receiver:
a MacOSXMenuBar
Instance Variables:
container = a MenuBarWrapper on: a MacOSXMenuBar
eventHandlers = nil
properties = nil
components = an OrderedCollection[5]
preferredBounds = 0 @ 0 corner: 239.564 @ 24
leftSpace = 0
spaceBetweenItems = 0
extraSpaceTop = 0
extraSpaceBottom = 0
extraSpaceBetweenLines = 0
menuChannel = a ValueHolder on: a Menu
performer = a Workbook
menuButtons = an OrderedCollection[5]
nextMenuButton = nil
Arguments:
each = a MacOSXMenuBarButtonView
Temporaries:
.aCommandEvent = a CommandEvent Set (#doIt)
Context PC = 10

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
an OrderedCollection
Instance Variables:
firstIndex = 1
lastIndex = 5
Arguments:
aBlock = BlockClosure [] in MenuBar>>commandEvent:
Temporaries:
index = 3
Context PC = 17

----------------------------------------------------------------------
MacOSXMenuBar(MenuBar)>>commandEvent:
Receiver:
a MacOSXMenuBar
Instance Variables:
container = a MenuBarWrapper on: a MacOSXMenuBar
eventHandlers = nil
properties = nil
components = an OrderedCollection[5]
preferredBounds = 0 @ 0 corner: 239.564 @ 24
leftSpace = 0
spaceBetweenItems = 0
extraSpaceTop = 0
extraSpaceBottom = 0
extraSpaceBetweenLines = 0
menuChannel = a ValueHolder on: a Menu
performer = a Workbook
menuButtons = an OrderedCollection[5]
nextMenuButton = nil
Arguments:
aCommandEvent = a CommandEvent Set (#doIt)
Context PC = 23

----------------------------------------------------------------------
CommandEvent>>dispatchTo:
Receiver:
a CommandEvent
Instance Variables:
time = nil
initiator = an EventDispatcher
window = a ScheduledWindow 5106208
wasHandled = false
state = nil
commands = a Set[1]
Arguments:
anObject = a MacOSXMenuBar
Context PC = 4

----------------------------------------------------------------------
optimized [] in KeyboardProcessor>>broadcastCommandEvent:
Receiver:
an UndefinedObject
Temporaries:
.aCommandEvent = a CommandEvent Set (#doIt)
.self = a KeyboardProcessor
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in KeyboardProcessor>>broadcastCommandEvent:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anObject = a MacOSXMenuBar
Context PC = 10

----------------------------------------------------------------------
MacOSXMenuBar(Object)>>ifNotNil:
Receiver:
a MacOSXMenuBar
Instance Variables:
container = a MenuBarWrapper on: a MacOSXMenuBar
eventHandlers = nil
properties = nil
components = an OrderedCollection[5]
preferredBounds = 0 @ 0 corner: 239.564 @ 24
leftSpace = 0
spaceBetweenItems = 0
extraSpaceTop = 0
extraSpaceBottom = 0
extraSpaceBetweenLines = 0
menuChannel = a ValueHolder on: a Menu
performer = a Workbook
menuButtons = an OrderedCollection[5]
nextMenuButton = nil
Arguments:
aBlock = BlockClosure [] in KeyboardProcessor>>broadcastCommandEvent:
Context PC = 4

----------------------------------------------------------------------
KeyboardProcessor>>broadcastCommandEvent:
Receiver:
a KeyboardProcessor
Instance Variables:
keyboardHook = nil
focusIsShifting = false
acceptOnControlChange = false
menuBar = a MacOSXMenuBar
parentVisual = a ScheduledWindow 5106208
focusedView = a TextEditorView
Arguments:
aCommandEvent = a CommandEvent Set (#doIt)
Context PC = 8

----------------------------------------------------------------------
[] in KeyboardProcessor>>processKeyboardEvent:
Receiver:
a KeyboardProcessor
Instance Variables:
keyboardHook = nil
focusIsShifting = false
acceptOnControlChange = false
menuBar = a MacOSXMenuBar
parentVisual = a ScheduledWindow 5106208
focusedView = a TextEditorView
Temporaries:
.self = a KeyboardProcessor
.commandEvent = a CommandEvent Set (#doIt)
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in KeyboardProcessor>>processKeyboardEvent:
outerContext = KeyboardProcessor>>processKeyboardEvent:
copiedValues = an Array[2]
Arguments:
anObject = a CommandEvent Set (#doIt)
Context PC = 10

----------------------------------------------------------------------
CommandEvent(Object)>>ifNotNil:
Receiver:
a CommandEvent
Instance Variables:
time = nil
initiator = an EventDispatcher
window = a ScheduledWindow 5106208
wasHandled = false
state = nil
commands = a Set[1]
Arguments:
aBlock = BlockClosure [] in KeyboardProcessor>>processKeyboardEvent:
Context PC = 4

----------------------------------------------------------------------
KeyboardProcessor>>processKeyboardEvent:
Receiver:
a KeyboardProcessor
Instance Variables:
keyboardHook = nil
focusIsShifting = false
acceptOnControlChange = false
menuBar = a MacOSXMenuBar
parentVisual = a ScheduledWindow 5106208
focusedView = a TextEditorView
Arguments:
aKeyboardEvent = a KeyPressedEvent
Temporaries:
commandEvent = a CommandEvent Set (#doIt)
Context PC = 11

----------------------------------------------------------------------
KeyboardProcessor>>processKeyboardEvent:for:
Receiver:
a KeyboardProcessor
Instance Variables:
keyboardHook = nil
focusIsShifting = false
acceptOnControlChange = false
menuBar = a MacOSXMenuBar
parentVisual = a ScheduledWindow 5106208
focusedView = a TextEditorView
Arguments:
keyboardEvent = a KeyPressedEvent
aController = an ApplicationStandardSystemController
Temporaries:
ev = a KeyPressedEvent
Context PC = 26

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
an EventDispatcher
Instance Variables:
windowController = an ApplicationStandardSystemController
currentMouseConsumer = nil
grabbingMouse = false
lastControlObject = nil
trapList = nil
state = nil
repairDamageWhenDebugging = true
flushQueueAfterError = true
distributeEventsWhenDebugging = true
dragDropInProgress = false
dragDropTracker = nil
dispatchUnknownEvents = false
Arguments:
event = a KeyPressedEvent
Temporaries:
objectWantingControl = nil
targetKeyboardProcessor = a KeyboardProcessor
Context PC = 103

----------------------------------------------------------------------
KeyPressedEvent(Event)>>dispatch
Receiver:
a KeyPressedEvent
Instance Variables:
time = nil
initiator = an EventDispatcher
window = a ScheduledWindow 5106208
wasHandled = false
state = nil
keyCharacter = $d "16r0064"
metaState = 16
alternativeKeyCharacter = $d "16r0064"
Context PC = 16

----------------------------------------------------------------------
KeyPressedEvent(Event)>>dispatchForWindowManager:
Receiver:
a KeyPressedEvent
Instance Variables:
time = nil
initiator = an EventDispatcher
window = a ScheduledWindow 5106208
wasHandled = false
state = nil
keyCharacter = $d "16r0064"
metaState = 16
alternativeKeyCharacter = $d "16r0064"
Arguments:
aWinMgr = a WindowManager
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
an UndefinedObject
Temporaries:
.event = a KeyPressedEvent
.self = a WindowManager
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
outerContext = nil
copiedValues = an Array[2]
Arguments:
anExceptionSelector = BadControllerError
handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
a WindowManager
Instance Variables:
windows = an OrderedCollection[4]
activeController = nil
interruptLock = false
outstandingMetaOrDamage = false
openInProgress = false
eventQueue = an EventQueue
baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
dontFilterEvents = false
Arguments:
event = a KeyPressedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
a WindowManager
Instance Variables:
windows = an OrderedCollection[4]
activeController = nil
interruptLock = false
outstandingMetaOrDamage = false
openInProgress = false
eventQueue = an EventQueue
baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
dontFilterEvents = false
Temporaries:
event = a KeyPressedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
an UndefinedObject
Temporaries:
.self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in [] in WindowManager>>newProcess
outerContext = nil
copiedValues = a WindowManager
Arguments:
anExceptionSelector = TerminateException
handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
an UndefinedObject
Temporaries:
.self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
a BlockClosure
Instance Variables:
method = CompiledBlock [] in WindowManager>>newProcess
outerContext = nil
copiedValues = a WindowManager
Arguments:
anExceptionSelector = TerminateException
handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
an UndefinedObject
Temporaries:
.aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: SHA256 + no derEncodedDigestInfo

Boris Popov, DeepCove Labs (SNN)

David,

 

Please try the attached, I believe our 7.10.1 version is identical.

 

-Boris

DeepCove Labs

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of David Shaffer
Sent: Friday, March 6, 2015 12:06 PM
To: VWNC
Subject: [vwnc] SHA256 + no derEncodedDigestInfo

 

I have certificates signed using SHA256 (these are the certificate authorities provided by Dropbox — attached).  These don’t work in VisualWorks 7.10.1 and newer as noted in the Security Guide:

 

 

It suggests a workaround but I don’t see how to directly apply this to certificate signatures except by hacking up Cincom’s code and if it were that easy I’d assume they wouldn't have this limitation in the first place.  I have attached a stack trace for reference.  Has anyone else hit this?  Anyone have a suggestion?

 

BTW, my Dropbox client is in the open repository and works very well in VW7.9 and older as long as you’re using a version that includes a working security package.

 

David

 

Unhandled exception: Message not understood: #derEncodedDigestInfo

Security.SHA256 class(Object)>>doesNotUnderstand:

Security.RSAPublicKey>>verify:of:hash:padding:

Xtreams.SecurityPublicKey>>verify:of:hash:padding:

optimized [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

BlockClosure>>cull:

ByteString(Object)>>ifNil:ifNotNil:

optimized [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

BlockClosure>>ensure:

optimized [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

optimized [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

BlockClosure>>cull:

Array(Object)>>ifNil:ifNotNil:

Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Security.X509.Certificate>>verifySignedBy:

Security.X509.Certificate>>verifyIssuedBy:

optimized [] in Security.X509.X509Registry>>verify:isIssuedBy:

BlockClosure>>on:do:

Security.X509.X509Registry>>verify:isIssuedBy:

optimized [] in [] in Security.X509.X509Registry>>validateCertificateChain:

BlockClosure>>cull:

Security.X509.Certificate(Object)>>ifNotNil:

optimized [] in Security.X509.X509Registry>>validateCertificateChain:

optimized [] in Collection>>inject:into:

Array(SequenceableCollection)>>do:

Array(Collection)>>inject:into:

Security.X509.X509Registry>>validateCertificateChain:

optimized [] in [] in Xtreams.TLSCertificateStore>>validate:for:

BlockClosure>>on:do:

optimized [] in Xtreams.TLSCertificateStore>>validate:for:

BlockClosure>>ifCurtailed:

Xtreams.TLSCertificateStore>>validate:for:

Xtreams.TLSSession>>validateCertificate:for:using:

Xtreams.TLSConnection>>validateCertificate:

Xtreams.TLSHandshake>>receiveCertificate

Xtreams.TLSRSAKeyExchange>>clientHandshake

Xtreams.TLSHandshake>>connect

BlockClosure>>tlsConnect:

optimized [] in Xtreams.TLSConnection>>connect:

Xtreams.TLSConnection>>writeProtectDo:

Xtreams.TLSConnection>>connect:

optimized [] in Net.TLSConnection>>startTLS

BlockClosure>>ifCurtailed:

Net.HttpsConnection(Net.TLSConnection)>>startTLS

Net.HttpsConnection(Net.TLSConnection)>>openStreamFor:port:timeout:

Net.HttpProtocolInterpreter(Net.NetProtocolInterpreter)>>connectToHost:port:timeout:

Net.HttpProtocolInterpreter>>connect

Net.HttpProtocolInterpreter>>executeRequest:

Net.HttpClient>>privateExecuteRequest

Net.HttpClient>>executeRequestDo:

Net.HttpClient>>executeAndGetResponse

Net.HttpClient>>executeRequest:

optimized [] in Net.HttpRequest>>execute

BlockClosure>>ensure:

Net.HttpRequest>>execute

Dropbox.RESTClient>>request:url:postParams:body:headers:rawResponse:

Dropbox.RESTClient>>postUrl:headers:params:rawResponse:

Dropbox.DropboxSession>>obtainRequestToken

UndefinedObject>>unboundMethod

UndefinedObject(Object)>>performMethod:arguments:

UndefinedObject(Object)>>performMethod:

TextEditorController>>evaluateCompiled:

optimized [] in TextEditorController>>evaluateSelection

BlockClosure>>ensure:

Cursor>>showWhile:

TextEditorController>>evaluateSelection

optimized [] in TextEditorController>>doIt

BlockClosure>>on:do:

TextEditorController>>doIt

WorkspacePage>>doIt

Workbook(AbstractWorkspace)>>smalltalkDoIt

MenuBarButtonController>>dispatchMenuSymbol:

MenuBarButtonController>>dispatchMenuSelection:

optimized [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

BlockClosure>>ensure:

optimized [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

BlockClosure>>on:do:

MacOSXMenuBarButtonView(MenuBarButtonView)>>processCommandEventAsMenuItemAccessor:

[] in MacOSXMenuBar(MenuBar)>>commandEvent:

OrderedCollection>>do:

MacOSXMenuBar(MenuBar)>>commandEvent:

CommandEvent>>dispatchTo:

optimized [] in KeyboardProcessor>>broadcastCommandEvent:

BlockClosure>>cull:

MacOSXMenuBar(Object)>>ifNotNil:

KeyboardProcessor>>broadcastCommandEvent:

[] in KeyboardProcessor>>processKeyboardEvent:

BlockClosure>>cull:

CommandEvent(Object)>>ifNotNil:

KeyboardProcessor>>processKeyboardEvent:

KeyboardProcessor>>processKeyboardEvent:for:

EventDispatcher>>dispatchEvent:

KeyPressedEvent(Event)>>dispatch

KeyPressedEvent(Event)>>dispatchForWindowManager:

optimized [] in WindowManager>>safelyDispatchForWindowManager:

BlockClosure>>on:do:

WindowManager>>safelyDispatchForWindowManager:

WindowManager>>processNextEvent

optimized [] in [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

----------------------------------------------------------------------

Security.SHA256 class(Object)>>doesNotUnderstand:

Receiver:

            a Security.SHA256 class

Instance Variables:

            superclass = Security.SHAHash

            methodDict = a MethodDictionary[13]

            format = 16409

            subclasses = nil

            instanceVariables = an Array[9]

            organization = ('private-algorithm' #Sigma256_0: #Sigma256_1: #doBlock #prepareWorkingRegisters #sigma256_0: #sigma256_1: #updateDigestRegisters #updateWAt:)

('initialize-release' #initialize)

('services-basic' #reset)

('private-digest' #backupRegisters #restoreRegisters: #writeDigestInto:startingAt:)

 

            name = #SHA256

            classPool = a NameSpaceOfClass[1]

            environment = a NameSpace[66]

Arguments:

            aMessage = a Message with selector: #derEncodedDigestInfo and arguments: #()

Temporaries:

            excpt = a MessageNotUnderstood

            resumeValue = nil

Context PC = 25

 

----------------------------------------------------------------------

Security.RSAPublicKey>>verify:of:hash:padding:

Receiver:

            a Security.RSAPublicKey

Instance Variables:

            n = 23464936089672074238558227240738642188401652750559322139110223472800898724452171193507830144175059459702529905676615071074993228771373136540482674196545025295733738196449583666610315977490986925474739841268554665863093665527055011951462798054655387514678326260004075182975117421140397782473200702068600919372009187240660911098390145147467211797777009862056159391483377819086435980778585967055870497149033762110952962582355410428105094882392320868563187123866160347835848217107617930191075074037337201254401445272297107644739005851884807909929228393436982535239808806968215135043030563617161016982313909247836020691707

            e = 65537

Arguments:

            signature = a ByteArray[256]

            digestBytes = a ByteArray[32]

            hashID = 'SHA256'

            paddingID = 'PKCS1'

Temporaries:

            bytes = nil

            hash = Security.SHA256

Context PC = 22

 

----------------------------------------------------------------------

Xtreams.SecurityPublicKey>>verify:of:hash:padding:

Receiver:

            a Xtreams.SecurityPublicKey

Instance Variables:

            type = #RSA

            key = a Security.RSAPublicKey

Arguments:

            signature = a ByteArray[256]

            digestBytes = a ByteArray[32]

            hashID = 'SHA256'

            paddingID = 'PKCS1'

Context PC = 8

 

----------------------------------------------------------------------

optimized [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Receiver:

            an UndefinedObject

Temporaries:

            .key = a Xtreams.SecurityPublicKey

            signature = a ByteArray[256]

            .digest = a ByteArray[32]

            .hash = 'SHA256'

            .padding = 'PKCS1'

Context PC = 11

 

----------------------------------------------------------------------

BlockClosure>>cull:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

            outerContext = nil

            copiedValues = an Array[5]

Arguments:

            anObject = 'PKCS1'

Context PC = 10

 

----------------------------------------------------------------------

ByteString(Object)>>ifNil:ifNotNil:

Receiver:

            a ByteString

Arguments:

            nilBlock = BlockClosure [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

            notNilBlock = BlockClosure [] in [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Receiver:

            an UndefinedObject

Temporaries:

            .aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            .key = a Xtreams.SecurityPublicKey

            signature = a ByteArray[256]

            .padding = 'PKCS1'

            .digest = a ByteArray[32]

            .hash = 'SHA256'

Context PC = 24

 

----------------------------------------------------------------------

BlockClosure>>ensure:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

            outerContext = nil

            copiedValues = an Array[6]

Arguments:

            aBlock = BlockClosure [] in [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Temporaries:

            result = nil

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Receiver:

            an UndefinedObject

Arguments:

            pkAlg = 'RSA'

            hash = 'SHA256'

            padding = 'PKCS1'

Temporaries:

            key = a Xtreams.SecurityPublicKey

            signature = a ByteArray[256]

            digest = a ByteArray[32]

            .aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            .anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 39

 

----------------------------------------------------------------------

optimized [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Receiver:

            an UndefinedObject

Arguments:

            arguments = an Array[3]

Temporaries:

            .aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            .anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 11

 

----------------------------------------------------------------------

BlockClosure>>cull:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anObject = an Array[3]

Context PC = 15

 

----------------------------------------------------------------------

Array(Object)>>ifNil:ifNotNil:

Receiver:

            an Array

Arguments:

            nilBlock = BlockClosure [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

            notNilBlock = BlockClosure [] in Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Context PC = 4

 

----------------------------------------------------------------------

Security.X509.AlgorithmIdentifier>>verify:isSignedBy:

Receiver:

            an Security.X509.AlgorithmIdentifier

Instance Variables:

            oid = OID:sha256WithRSAEncryption/1.2.840.113549.1.1.11

            oidDescription = 'sha256WithRSAEncryption'

            parameters = nil

Arguments:

            aSubjectCertificate = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            anIssuerCertificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 14

 

----------------------------------------------------------------------

Security.X509.Certificate>>verifySignedBy:

Receiver:

            a Security.X509.Certificate

Instance Variables:

            encoding = <1(5)1319>

            tbsCertificate = a Security.X509.TBSCertificate

            signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption

            signatureValue = BitString(256/0/84...57)

            signature = a ByteArray[256]

Arguments:

            certificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 21

 

----------------------------------------------------------------------

Security.X509.Certificate>>verifyIssuedBy:

Receiver:

            a Security.X509.Certificate

Instance Variables:

            encoding = <1(5)1319>

            tbsCertificate = a Security.X509.TBSCertificate

            signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption

            signatureValue = BitString(256/0/84...57)

            signature = a ByteArray[256]

Arguments:

            certificate = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in Security.X509.X509Registry>>verify:isIssuedBy:

Receiver:

            an UndefinedObject

Temporaries:

            .subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            .issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in Security.X509.X509Registry>>verify:isIssuedBy:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anExceptionSelector = Security.X509.IssuerMismatch

            handlerBlock = BlockClosure [] in Security.X509.X509Registry>>verify:isIssuedBy:

Context PC = 18

 

----------------------------------------------------------------------

Security.X509.X509Registry>>verify:isIssuedBy:

Receiver:

            a Security.X509.X509Registry

Instance Variables:

            trustedCertificates = a Set[15]

            revokedCertificates = a Set[0]

            strict = false

Arguments:

            subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Context PC = 15

 

----------------------------------------------------------------------

optimized [] in [] in Security.X509.X509Registry>>validateCertificateChain:

Receiver:

            an UndefinedObject

Temporaries:

            .self = a Security.X509.X509Registry

            .issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

            .subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>cull:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in Security.X509.X509Registry>>validateCertificateChain:

            outerContext = nil

            copiedValues = an Array[3]

Arguments:

            anObject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

Context PC = 10

 

----------------------------------------------------------------------

Security.X509.Certificate(Object)>>ifNotNil:

Receiver:

            a Security.X509.Certificate

Instance Variables:

            encoding = <1(5)1319>

            tbsCertificate = a Security.X509.TBSCertificate

            signatureAlgorithm = AlgorithmIdentifier: sha256WithRSAEncryption

            signatureValue = BitString(256/0/84...57)

            signature = a ByteArray[256]

Arguments:

            aBlock = BlockClosure [] in [] in Security.X509.X509Registry>>validateCertificateChain:

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in Security.X509.X509Registry>>validateCertificateChain:

Receiver:

            an UndefinedObject

Arguments:

            subject = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

            issuer = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Temporaries:

            .self = a Security.X509.X509Registry

Context PC = 24

 

----------------------------------------------------------------------

optimized [] in Collection>>inject:into:

Receiver:

            an UndefinedObject

Arguments:

            each = X509v3: Go Daddy Secure Certificate Authority - G2 <Go Daddy Root Certificate Authority - G2>

Temporaries:

            .binaryBlock = BlockClosure [] in Security.X509.X509Registry>>validateCertificateChain:

            nextValue = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

Context PC = 9

 

----------------------------------------------------------------------

Array(SequenceableCollection)>>do:

Receiver:

            an Array

Arguments:

            aBlock = BlockClosure [] in Collection>>inject:into:

Temporaries:

            i = 2

Context PC = 19

 

----------------------------------------------------------------------

Array(Collection)>>inject:into:

Receiver:

            an Array

Arguments:

            thisValue = nil

            binaryBlock = BlockClosure [] in Security.X509.X509Registry>>validateCertificateChain:

Temporaries:

            nextValue = X509v3: *.dropbox.com <Go Daddy Secure Certificate Authority - G2>

Context PC = 15

 

----------------------------------------------------------------------

Security.X509.X509Registry>>validateCertificateChain:

Receiver:

            a Security.X509.X509Registry

Instance Variables:

            trustedCertificates = a Set[15]

            revokedCertificates = a Set[0]

            strict = false

Arguments:

            chain = an Array[3]

Context PC = 11

 

----------------------------------------------------------------------

optimized [] in [] in Xtreams.TLSCertificateStore>>validate:for:

Receiver:

            an UndefinedObject

Temporaries:

            .self = a Xtreams.TLSCertificateStore

            .chain = an Array[3]

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in Xtreams.TLSCertificateStore>>validate:for:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anExceptionSelector = Security.X509.X509Error

            handlerBlock = BlockClosure [] in [] in Xtreams.TLSCertificateStore>>validate:for:

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in Xtreams.TLSCertificateStore>>validate:for:

Receiver:

            an UndefinedObject

Temporaries:

            .self = a Xtreams.TLSCertificateStore

            .chain = an Array[3]

            alert = nil

Context PC = 15

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in Xtreams.TLSCertificateStore>>validate:for:

            outerContext = nil

            copiedValues = an Array[3]

Arguments:

            terminationBlock = BlockClosure [] in Xtreams.TLSCertificateStore>>validate:for:

Context PC = 4

 

----------------------------------------------------------------------

Xtreams.TLSCertificateStore>>validate:for:

Receiver:

            a Xtreams.TLSCertificateStore

Instance Variables:

            owned = an OrderedCollection[0]

            known = a Set[0]

            trusted = a Security.X509.X509Registry

Arguments:

            chain = an Array[3]

            connection = a Xtreams.TLSConnection

Temporaries:

            alert = nil

Context PC = 25

 

----------------------------------------------------------------------

Xtreams.TLSSession>>validateCertificate:for:using:

Receiver:

            a Xtreams.TLSSession

Instance Variables:

            nextLink = nil

            previousLink = nil

            id = nil

            key = 'api.dropbox.com:443'

            created = nil

            compression = null

            suite = TLS_RSA_WITH_AES_256_CBC_SHA256

            versionMinor = 3

            certificate = nil

            peerCertificate = an Array[3]

            subjectVerifier = nil

            isServer = false

            secret = nil

Arguments:

            bytes = an Array[3]

            connection = a Xtreams.TLSConnection

            certificates = a Xtreams.TLSCertificateStore

Context PC = 10

 

----------------------------------------------------------------------

Xtreams.TLSConnection>>validateCertificate:

Receiver:

            a Xtreams.TLSConnection

Instance Variables:

            subscriptionRegistry = a SubscriptionRegistry

            context = a Xtreams.TLSContext

            session = TLSSession 'api.dropbox.com:443'

            handshake = a Xtreams.TLSHandshake

            writeLock = nil

            output = TLSRecordWriteStream

TLSMarshalingWriteStream

BufferedWriteStream buffered: 32768

            #[]

ExternalWriteStream

an active Net.HttpSocketAccessor

            input = TLSRecordReadStream.FMB

TLSMarshalingReadStream.CFJ

ExternalReadStream.PN

an active Net.HttpSocketAccessor

            socket = an active Net.HttpSocketAccessor

            client_random = a ByteArray[32]

            server_random = a ByteArray[32]

            write_mac_key = nil

            read_mac_key = nil

            write_key = nil

            read_key = nil

            write_iv = nil

            read_iv = nil

Arguments:

            certificate = <- TLSCertificate

Context PC = 10

 

----------------------------------------------------------------------

Xtreams.TLSHandshake>>receiveCertificate

Receiver:

            a Xtreams.TLSHandshake

Instance Variables:

            connection = a Xtreams.TLSConnection

            verifier = BlockClosure [] in [] in Net.TLSConnection>>startTLS

            clientHello = -> TLSClientHello(3.3; suites: 10; extensions: #signature_algorithms)

            serverHello = <- TLSServerHello(3.3; TLS_RSA_WITH_AES_256_CBC_SHA256)

            writing = DuplicateWriteStream

TLSRecordWriteStream

TLSMarshalingWriteStream

BufferedWriteStream buffered: 32768

            #[]

ExternalWriteStream

an active Net.HttpSocketAccessor

            reading = DuplicateReadStream.GIH

StitchReadStream.DBP

BlockClosureReadStream.AKG

BlockClosure [] in [] in [] in Xtreams.TLSRecordReadStream>>initiateRuns

            resuming = false

            digest = DigestWriteStream

NullWriteStream

nil

            keyExchange = a Xtreams.TLSRSAKeyExchange

            queue = an OrderedCollection[0]

            nextMessage = nil

            signatureAlgorithms = TLSSignatureAlgorithms: dsa/sha1

Temporaries:

            certificate = <- TLSCertificate

            subject = nil

Context PC = 9

 

----------------------------------------------------------------------

Xtreams.TLSRSAKeyExchange>>clientHandshake

Receiver:

            a Xtreams.TLSRSAKeyExchange

Instance Variables:

            handshake = a Xtreams.TLSHandshake

            connection = a Xtreams.TLSConnection

Temporaries:

            pms = nil

            epms = nil

            kex = nil

Context PC = 3

 

----------------------------------------------------------------------

Xtreams.TLSHandshake>>connect

Receiver:

            a Xtreams.TLSHandshake

Instance Variables:

            connection = a Xtreams.TLSConnection

            verifier = BlockClosure [] in [] in Net.TLSConnection>>startTLS

            clientHello = -> TLSClientHello(3.3; suites: 10; extensions: #signature_algorithms)

            serverHello = <- TLSServerHello(3.3; TLS_RSA_WITH_AES_256_CBC_SHA256)

            writing = DuplicateWriteStream

TLSRecordWriteStream

TLSMarshalingWriteStream

BufferedWriteStream buffered: 32768

            #[]

ExternalWriteStream

an active Net.HttpSocketAccessor

            reading = DuplicateReadStream.GIH

StitchReadStream.DBP

BlockClosureReadStream.AKG

BlockClosure [] in [] in [] in Xtreams.TLSRecordReadStream>>initiateRuns

            resuming = false

            digest = DigestWriteStream

NullWriteStream

nil

            keyExchange = a Xtreams.TLSRSAKeyExchange

            queue = an OrderedCollection[0]

            nextMessage = nil

            signatureAlgorithms = TLSSignatureAlgorithms: dsa/sha1

Context PC = 62

 

----------------------------------------------------------------------

BlockClosure>>tlsConnect:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in Net.TLSConnection>>startTLS

            outerContext = nil

            copiedValues = a Net.HttpsConnection

Arguments:

            handshake = a Xtreams.TLSHandshake

Context PC = 7

 

----------------------------------------------------------------------

optimized [] in Xtreams.TLSConnection>>connect:

Receiver:

            an UndefinedObject

Temporaries:

            .subject = BlockClosure [] in [] in Net.TLSConnection>>startTLS

            .self = a Xtreams.TLSConnection

Context PC = 8

 

----------------------------------------------------------------------

Xtreams.TLSConnection>>writeProtectDo:

Receiver:

            a Xtreams.TLSConnection

Instance Variables:

            subscriptionRegistry = a SubscriptionRegistry

            context = a Xtreams.TLSContext

            session = TLSSession 'api.dropbox.com:443'

            handshake = a Xtreams.TLSHandshake

            writeLock = nil

            output = TLSRecordWriteStream

TLSMarshalingWriteStream

BufferedWriteStream buffered: 32768

            #[]

ExternalWriteStream

an active Net.HttpSocketAccessor

            input = TLSRecordReadStream.FMB

TLSMarshalingReadStream.CFJ

ExternalReadStream.PN

an active Net.HttpSocketAccessor

            socket = an active Net.HttpSocketAccessor

            client_random = a ByteArray[32]

            server_random = a ByteArray[32]

            write_mac_key = nil

            read_mac_key = nil

            write_key = nil

            read_key = nil

            write_iv = nil

            read_iv = nil

Arguments:

            aBlock = BlockClosure [] in Xtreams.TLSConnection>>connect:

Context PC = 7

 

----------------------------------------------------------------------

Xtreams.TLSConnection>>connect:

Receiver:

            a Xtreams.TLSConnection

Instance Variables:

            subscriptionRegistry = a SubscriptionRegistry

            context = a Xtreams.TLSContext

            session = TLSSession 'api.dropbox.com:443'

            handshake = a Xtreams.TLSHandshake

            writeLock = nil

            output = TLSRecordWriteStream

TLSMarshalingWriteStream

BufferedWriteStream buffered: 32768

            #[]

ExternalWriteStream

an active Net.HttpSocketAccessor

            input = TLSRecordReadStream.FMB

TLSMarshalingReadStream.CFJ

ExternalReadStream.PN

an active Net.HttpSocketAccessor

            socket = an active Net.HttpSocketAccessor

            client_random = a ByteArray[32]

            server_random = a ByteArray[32]

            write_mac_key = nil

            read_mac_key = nil

            write_key = nil

            read_key = nil

            write_iv = nil

            read_iv = nil

Arguments:

            subject = BlockClosure [] in [] in Net.TLSConnection>>startTLS

Context PC = 16

 

----------------------------------------------------------------------

optimized [] in Net.TLSConnection>>startTLS

Receiver:

            an UndefinedObject

Temporaries:

            .self = a Net.HttpsConnection

Context PC = 10

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in Net.TLSConnection>>startTLS

            outerContext = nil

            copiedValues = a Net.HttpsConnection

Arguments:

            terminationBlock = BlockClosure [] in Net.TLSConnection>>startTLS

Context PC = 4

 

----------------------------------------------------------------------

Net.HttpsConnection(Net.TLSConnection)>>startTLS

Receiver:

            a Net.HttpsConnection

Instance Variables:

            stream = an ExternalReadAppendStream

            settings = a Net.HttpSettings

            tlsConnection = a Xtreams.TLSConnection

            hostName = 'api.dropbox.com'

            socket = an active Net.HttpSocketAccessor

            port = 443

Context PC = 31

 

----------------------------------------------------------------------

Net.HttpsConnection(Net.TLSConnection)>>openStreamFor:port:timeout:

Receiver:

            a Net.HttpsConnection

Instance Variables:

            stream = an ExternalReadAppendStream

            settings = a Net.HttpSettings

            tlsConnection = a Xtreams.TLSConnection

            hostName = 'api.dropbox.com'

            socket = an active Net.HttpSocketAccessor

            port = 443

Arguments:

            hostNameString = 'api.dropbox.com'

            aNumber = 443

            tmNumber = 20000

Context PC = 14

 

----------------------------------------------------------------------

Net.HttpProtocolInterpreter(Net.NetProtocolInterpreter)>>connectToHost:port:timeout:

Receiver:

            a Net.HttpProtocolInterpreter

Instance Variables:

            connection = a Net.HttpsConnection

            settings = a Net.HttpSettings

            authPolicy = nil

            proxyAuthPolicy = nil

            cookieAgent = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            hostName = 'api.dropbox.com'

            portNumber = 443

            readingOptions = a Net.HttpReadingOptions

            writingOptions = a Net.HttpWritingOptions

Arguments:

            aHostName = 'api.dropbox.com'

            aNumber = 443

            tmNumber = 20000

Context PC = 9

 

----------------------------------------------------------------------

Net.HttpProtocolInterpreter>>connect

Receiver:

            a Net.HttpProtocolInterpreter

Instance Variables:

            connection = a Net.HttpsConnection

            settings = a Net.HttpSettings

            authPolicy = nil

            proxyAuthPolicy = nil

            cookieAgent = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            hostName = 'api.dropbox.com'

            portNumber = 443

            readingOptions = a Net.HttpReadingOptions

            writingOptions = a Net.HttpWritingOptions

Context PC = 35

 

----------------------------------------------------------------------

Net.HttpProtocolInterpreter>>executeRequest:

Receiver:

            a Net.HttpProtocolInterpreter

Instance Variables:

            connection = a Net.HttpsConnection

            settings = a Net.HttpSettings

            authPolicy = nil

            proxyAuthPolicy = nil

            cookieAgent = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            hostName = 'api.dropbox.com'

            portNumber = 443

            readingOptions = a Net.HttpReadingOptions

            writingOptions = a Net.HttpWritingOptions

Arguments:

            aRequest = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

Context PC = 11

 

----------------------------------------------------------------------

Net.HttpClient>>privateExecuteRequest

Receiver:

            a Net.HttpClient

Instance Variables:

            user = nil

            hostName = nil

            portNumber = nil

            clientPI = a Net.HttpProtocolInterpreter

            retries = nil

            timeout = nil

            delaySeconds = nil

            state = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            protocol = nil

Context PC = 11

 

----------------------------------------------------------------------

Net.HttpClient>>executeRequestDo:

Receiver:

            a Net.HttpClient

Instance Variables:

            user = nil

            hostName = nil

            portNumber = nil

            clientPI = a Net.HttpProtocolInterpreter

            retries = nil

            timeout = nil

            delaySeconds = nil

            state = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            protocol = nil

Arguments:

            aBlock = nil

Temporaries:

            streamx = nil

Context PC = 4

 

----------------------------------------------------------------------

Net.HttpClient>>executeAndGetResponse

Receiver:

            a Net.HttpClient

Instance Variables:

            user = nil

            hostName = nil

            portNumber = nil

            clientPI = a Net.HttpProtocolInterpreter

            retries = nil

            timeout = nil

            delaySeconds = nil

            state = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            protocol = nil

Context PC = 11

 

----------------------------------------------------------------------

Net.HttpClient>>executeRequest:

Receiver:

            a Net.HttpClient

Instance Variables:

            user = nil

            hostName = nil

            portNumber = nil

            clientPI = a Net.HttpProtocolInterpreter

            retries = nil

            timeout = nil

            delaySeconds = nil

            state = nil

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            protocol = nil

Arguments:

            aRequest = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

Context PC = 7

 

----------------------------------------------------------------------

optimized [] in Net.HttpRequest>>execute

Receiver:

            an UndefinedObject

Temporaries:

            .client = aHttpClient on: api.dropbox.com:443

            .self = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>ensure:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in Net.HttpRequest>>execute

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            aBlock = BlockClosure [] in Net.HttpRequest>>execute

Temporaries:

            result = nil

Context PC = 4

 

----------------------------------------------------------------------

Net.HttpRequest>>execute

Receiver:

            a Net.HttpRequest

Instance Variables:

            source = nil

            parent = nil

            value = ------ (172 bytes) -----

 

            header = Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

            headerCharset = nil

            readingOptions = a Net.HttpReadingOptions

            writingOptions = a Net.HttpWritingOptions

            nextNamespaceId = nil

            requestLine = POST /1/oauth/request_token HTTP/1.1

Temporaries:

            client = aHttpClient on: api.dropbox.com:443

Context PC = 16

 

----------------------------------------------------------------------

Dropbox.RESTClient>>request:url:postParams:body:headers:rawResponse:

Receiver:

            a Dropbox.RESTClient

Arguments:

            method = 'POST'

            url = 'https://api.dropbox.com/1/oauth/request_token'

            postParams = a Dictionary[6]

            theBody = nil

            theHeaders = a Dictionary[0]

            theRawResponse = true

Temporaries:

            headers = a Dictionary[1]

            request = POST /1/oauth/request_token HTTP/1.1

Content-type: application/x-www-form-urlencoded

Content-length: 172

User-agent: UnofficialVisualWorksSDK1.0

 

------ (172 bytes) -----

 

            body = nil

            rawResponse = true

Context PC = 66

 

----------------------------------------------------------------------

Dropbox.RESTClient>>postUrl:headers:params:rawResponse:

Receiver:

            a Dropbox.RESTClient

Arguments:

            url = 'https://api.dropbox.com/1/oauth/request_token'

            headers = a Dictionary[0]

            params = a Dictionary[6]

            aBoolean = true

Context PC = 10

 

----------------------------------------------------------------------

Dropbox.DropboxSession>>obtainRequestToken

Receiver:

            a Dropbox.DropboxSession

Instance Variables:

            consumerCreds = a Dropbox.OAuthToken (key=biz,secret=baz)

            token = nil

            requestToken = nil

            accessType = 'app_folder'

            root = 'sandbox'

            locale = nil

Temporaries:

            url = 'https://api.dropbox.com/1/oauth/request_token'

            headers = a Dictionary[0]

            params = a Dictionary[6]

            response = nil

Context PC = 35

 

----------------------------------------------------------------------

UndefinedObject>>unboundMethod

Receiver:

            an UndefinedObject

Context PC = 15

 

----------------------------------------------------------------------

UndefinedObject(Object)>>performMethod:arguments:

Receiver:

            an UndefinedObject

Arguments:

            method = AnnotatedMethod UndefinedObject>>unboundMethod

            args = an Array[0]

Context PC = 5

 

----------------------------------------------------------------------

UndefinedObject(Object)>>performMethod:

Receiver:

            an UndefinedObject

Arguments:

            method = AnnotatedMethod UndefinedObject>>unboundMethod

Context PC = 5

 

----------------------------------------------------------------------

TextEditorController>>evaluateCompiled:

Receiver:

            a TextEditorController

Instance Variables:

            model = a PluggableAdaptor

            view = a TextEditorView

            menuHolder = a ValueHolder on: a Menu

            performer = a WorkspacePage

            beginTypeInIndex = nil

            anchorIndex = 501

            emphasisHere = nil

            dispatchTable = a DispatchTable

            charComposer = a CharacterComposer

            textHasChanged = true

            feelPolicy = a MotifFeelPolicy

            supportCodeEditingFeels = true

            localMenuItems = an Array[21]

            extendingDown = true

            keyboardHook = nil

            readOnly = false

            accepted = false

            autoAccept = false

            continuousAccept = false

            tabMeansNextField = true

            tabRequiresControl = true

            dispatcher = an UIDispatcher

            selectable = false

            maxChars = nil

            nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:

            currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]

Arguments:

            aMethod = AnnotatedMethod UndefinedObject>>unboundMethod

Temporaries:

            context = nil

Context PC = 13

 

----------------------------------------------------------------------

optimized [] in TextEditorController>>evaluateSelection

Receiver:

            an UndefinedObject

Temporaries:

            .self = a TextEditorController

            .code = AnnotatedMethod UndefinedObject>>unboundMethod

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>ensure:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in TextEditorController>>evaluateSelection

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            aBlock = BlockClosure [] in Cursor>>showWhile:

Temporaries:

            result = nil

Context PC = 4

 

----------------------------------------------------------------------

Cursor>>showWhile:

Receiver:

            a Cursor

Instance Variables:

            errorCode = 0

            handle = a ByteArray[4]

            image = Depth1Image(extent: 16 @ 16 depth: 1)

            mask = Depth1Image(extent: 16 @ 16 depth: 1)

            hotSpot = 1 @ 1

            name = 'xeq'

Arguments:

            aBlock = BlockClosure [] in TextEditorController>>evaluateSelection

Temporaries:

            oldcursor = Cursor normal

Context PC = 23

 

----------------------------------------------------------------------

TextEditorController>>evaluateSelection

Receiver:

            a TextEditorController

Instance Variables:

            model = a PluggableAdaptor

            view = a TextEditorView

            menuHolder = a ValueHolder on: a Menu

            performer = a WorkspacePage

            beginTypeInIndex = nil

            anchorIndex = 501

            emphasisHere = nil

            dispatchTable = a DispatchTable

            charComposer = a CharacterComposer

            textHasChanged = true

            feelPolicy = a MotifFeelPolicy

            supportCodeEditingFeels = true

            localMenuItems = an Array[21]

            extendingDown = true

            keyboardHook = nil

            readOnly = false

            accepted = false

            autoAccept = false

            continuousAccept = false

            tabMeansNextField = true

            tabRequiresControl = true

            dispatcher = an UIDispatcher

            selectable = false

            maxChars = nil

            nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:

            currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]

Temporaries:

            code = AnnotatedMethod UndefinedObject>>unboundMethod

            result = nil

Context PC = 14

 

----------------------------------------------------------------------

optimized [] in TextEditorController>>doIt

Receiver:

            an UndefinedObject

Temporaries:

            .self = a TextEditorController

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in TextEditorController>>doIt

            outerContext = nil

            copiedValues = a TextEditorController

Arguments:

            anExceptionSelector = CompilationError

            handlerBlock = BlockClosure [] in TextEditorController>>doIt

Context PC = 18

 

----------------------------------------------------------------------

TextEditorController>>doIt

Receiver:

            a TextEditorController

Instance Variables:

            model = a PluggableAdaptor

            view = a TextEditorView

            menuHolder = a ValueHolder on: a Menu

            performer = a WorkspacePage

            beginTypeInIndex = nil

            anchorIndex = 501

            emphasisHere = nil

            dispatchTable = a DispatchTable

            charComposer = a CharacterComposer

            textHasChanged = true

            feelPolicy = a MotifFeelPolicy

            supportCodeEditingFeels = true

            localMenuItems = an Array[21]

            extendingDown = true

            keyboardHook = nil

            readOnly = false

            accepted = false

            autoAccept = false

            continuousAccept = false

            tabMeansNextField = true

            tabRequiresControl = true

            dispatcher = an UIDispatcher

            selectable = false

            maxChars = nil

            nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:

            currentUndo = a TextUndo #Typing [-]xhgqndvlhvid37p[-][+]baz[+]

Context PC = 20

 

----------------------------------------------------------------------

WorkspacePage>>doIt

Receiver:

            a WorkspacePage

Instance Variables:

            dependents = a PluggableAdaptor

            builder = an UIBuilder

            uiSession = nil

            eventHandlers = nil

            workspace = a Workbook

            label = an UserMessage('Page 1', #Page1, #dialogs)

            verboseLabel = nil

            filename = nil

            fileTimestamp = nil

            textModel = a PluggableAdaptor

            unacceptedText = nil

            savedSelection = an Array[2]

            savedFileTimestamp = nil

            textModelOverride = a ValueHolder on: Text for '| pem bundle |

pem := (HttpClient get: ''http://curl.haxx.se/ca/cacert.pem'') contents.

bundle := CertificateFileReader new readFrom: pem readStream.

X509Registry trustedCertificates addAll: bundle.

 

pem := ''trusted-certs.crt'' asFilename.

bundle := CertificateFileReader new readFrom: pem readStream.

X509Registry trustedCertificates addAll: bundle.

 

 

session := DropboxSession

                        consumerKey: ''5patmmhoipec1v8'' 

                        consumerSecret: ''xhgqndvlhvid37p'' 

                        accessType: ''app_folder'' 

                        locale: nil .

rt := session obtainRequestToken.

url := session buildAuthorizeUrlRequestToken: rt callback: nil.

self halt: ''Authenticate at: '' , url, '' then press proceed.''.

session obtainAccessToken.

client := DropboxClient session: session client: Dropbox.RESTClient new.

 

client accountInfo.

 

client putFileTo: ''frog.pdf'' file: ''/home/shaffer/Desktop/ToReadSoon/weave.pdf'' overwrite: false parentRev: nil.

 

client getFileMetadata: ''frog.pdf'' rev: nil.

 

client delta: nil.

 

client fileCreateFolder: ''new_folder''.

 

client fileDelete: ''new_folder''.

 

client fileMoveFrom: ''frog.pdf'' to: ''cat.pdf''

 

client metadataPath: ''/''.

 

client thumbnail: ''cat.pdf''.

 

client revisionsPath: ''cat.pdf'' revLimit: nil.

 

client mediaPath: ''cat.pdf''.

 

client sharePath: ''cat.pdf''.

 

client getFile: ''Exam1.tex'' rev: nil.

 

cr := client createCopyRef: ''Exam1.tex''.

client fileCreateFolder: ''Foo''.

client addCopyRef: cr to: ''/Foo/Blah.tex''.

 

client fileMoveFrom: ''/Foo/Dog.tex'' to: ''/Foo/Cat.tex''.

 

md := client metadataPath: ''/Foo/Cat.tex''.

client putFileTo: ''/Foo/Cat.tex'' stream: #(65 66 67) readStream overwrite: true parentRev: (md at: ''rev'').

 

client getFile: ''/Foo/Cat.tex'' rev: nil.

 

client restorePath: ''/Foo/Cat.tex'' rev: (md at: ''rev'').

 

client searchPath: ''/Foo'' query: ''Cat'' fileLimit: 10 includeDeleted: false.'

Context PC = 20

 

----------------------------------------------------------------------

Workbook(AbstractWorkspace)>>smalltalkDoIt

Receiver:

            a Workbook

Instance Variables:

            dependents = a ScheduledWindow 5106208

            builder = an UIBuilder

            uiSession = a ControlManager

            eventHandlers = nil

            locals = a WorkspaceVariablePool[6]

            importAll = true

            specificImports = an Array[3]

            importSummaryHolder = a ValueHolder on: 'All'

            pageExplanationHolder = a ValueHolder on: 'Text or Smalltalk code'

            statusBarVisible = true

            encodingChannel = a ValueHolder on: #Source

            menuBarHolder = a ValueHolder on: a Menu

            pageHolder = a SelectionInList

            lastInstalledPage = a WorkspacePage

Context PC = 5

 

----------------------------------------------------------------------

MenuBarButtonController>>dispatchMenuSymbol:

Receiver:

            a MenuBarButtonController

Instance Variables:

            model = nil

            view = a MacOSXMenuBarButtonView

            highlightOnOpen = false

Arguments:

            menuSelection = #smalltalkDoIt

Context PC = 38

 

----------------------------------------------------------------------

MenuBarButtonController>>dispatchMenuSelection:

Receiver:

            a MenuBarButtonController

Instance Variables:

            model = nil

            view = a MacOSXMenuBarButtonView

            highlightOnOpen = false

Arguments:

            menuSelection = #smalltalkDoIt

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

Receiver:

            an UndefinedObject

Temporaries:

            .self = a MacOSXMenuBarButtonView

            .theValue = #smalltalkDoIt

Context PC = 12

 

----------------------------------------------------------------------

BlockClosure>>ensure:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            aBlock = BlockClosure [] in [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

Temporaries:

            result = nil

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

Receiver:

            an UndefinedObject

Temporaries:

            .self = a MacOSXMenuBarButtonView

            .theValue = #smalltalkDoIt

Context PC = 14

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anExceptionSelector = VetoAction

            handlerBlock = BlockClosure [] in MenuBarButtonView>>processCommandEventAsMenuItemAccessor:

Context PC = 18

 

----------------------------------------------------------------------

MacOSXMenuBarButtonView(MenuBarButtonView)>>processCommandEventAsMenuItemAccessor:

Receiver:

            a MacOSXMenuBarButtonView

Instance Variables:

            container = a BoundedWrapper on: a MacOSXMenuBarButtonView

            eventHandlers = nil

            properties = nil

            model = nil

            controller = a MenuBarButtonController

            state = a WidgetState

            isInTransition = true

            latestValue = nil

            referenceValue = true

            label = Label for 'Smalltalk'

            textStyle = a TextAttributes

            menuHolder = a Menu

            menuBar = a MacOSXMenuBar

Arguments:

            aCommandEvent = a CommandEvent Set (#doIt)

Temporaries:

            theMenu = a Menu

            matchingMenuItem = a MenuItem 'Do it'

            theValue = #smalltalkDoIt

Context PC = 45

 

----------------------------------------------------------------------

[] in MacOSXMenuBar(MenuBar)>>commandEvent:

Receiver:

            a MacOSXMenuBar

Instance Variables:

            container = a MenuBarWrapper on: a MacOSXMenuBar

            eventHandlers = nil

            properties = nil

            components = an OrderedCollection[5]

            preferredBounds = 0 @ 0 corner: 239.564 @ 24

            leftSpace = 0

            spaceBetweenItems = 0

            extraSpaceTop = 0

            extraSpaceBottom = 0

            extraSpaceBetweenLines = 0

            menuChannel = a ValueHolder on: a Menu

            performer = a Workbook

            menuButtons = an OrderedCollection[5]

            nextMenuButton = nil

Arguments:

            each = a MacOSXMenuBarButtonView

Temporaries:

            .aCommandEvent = a CommandEvent Set (#doIt)

Context PC = 10

 

----------------------------------------------------------------------

OrderedCollection>>do:

Receiver:

            an OrderedCollection

Instance Variables:

            firstIndex = 1

            lastIndex = 5

Arguments:

            aBlock = BlockClosure [] in MenuBar>>commandEvent:

Temporaries:

            index = 3

Context PC = 17

 

----------------------------------------------------------------------

MacOSXMenuBar(MenuBar)>>commandEvent:

Receiver:

            a MacOSXMenuBar

Instance Variables:

            container = a MenuBarWrapper on: a MacOSXMenuBar

            eventHandlers = nil

            properties = nil

            components = an OrderedCollection[5]

            preferredBounds = 0 @ 0 corner: 239.564 @ 24

            leftSpace = 0

            spaceBetweenItems = 0

            extraSpaceTop = 0

            extraSpaceBottom = 0

            extraSpaceBetweenLines = 0

            menuChannel = a ValueHolder on: a Menu

            performer = a Workbook

            menuButtons = an OrderedCollection[5]

            nextMenuButton = nil

Arguments:

            aCommandEvent = a CommandEvent Set (#doIt)

Context PC = 23

 

----------------------------------------------------------------------

CommandEvent>>dispatchTo:

Receiver:

            a CommandEvent

Instance Variables:

            time = nil

            initiator = an EventDispatcher

            window = a ScheduledWindow 5106208

            wasHandled = false

            state = nil

            commands = a Set[1]

Arguments:

            anObject = a MacOSXMenuBar

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in KeyboardProcessor>>broadcastCommandEvent:

Receiver:

            an UndefinedObject

Temporaries:

            .aCommandEvent = a CommandEvent Set (#doIt)

            .self = a KeyboardProcessor

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>cull:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in KeyboardProcessor>>broadcastCommandEvent:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anObject = a MacOSXMenuBar

Context PC = 10

 

----------------------------------------------------------------------

MacOSXMenuBar(Object)>>ifNotNil:

Receiver:

            a MacOSXMenuBar

Instance Variables:

            container = a MenuBarWrapper on: a MacOSXMenuBar

            eventHandlers = nil

            properties = nil

            components = an OrderedCollection[5]

            preferredBounds = 0 @ 0 corner: 239.564 @ 24

            leftSpace = 0

            spaceBetweenItems = 0

            extraSpaceTop = 0

            extraSpaceBottom = 0

            extraSpaceBetweenLines = 0

            menuChannel = a ValueHolder on: a Menu

            performer = a Workbook

            menuButtons = an OrderedCollection[5]

            nextMenuButton = nil

Arguments:

            aBlock = BlockClosure [] in KeyboardProcessor>>broadcastCommandEvent:

Context PC = 4

 

----------------------------------------------------------------------

KeyboardProcessor>>broadcastCommandEvent:

Receiver:

            a KeyboardProcessor

Instance Variables:

            keyboardHook = nil

            focusIsShifting = false

            acceptOnControlChange = false

            menuBar = a MacOSXMenuBar

            parentVisual = a ScheduledWindow 5106208

            focusedView = a TextEditorView

Arguments:

            aCommandEvent = a CommandEvent Set (#doIt)

Context PC = 8

 

----------------------------------------------------------------------

[] in KeyboardProcessor>>processKeyboardEvent:

Receiver:

            a KeyboardProcessor

Instance Variables:

            keyboardHook = nil

            focusIsShifting = false

            acceptOnControlChange = false

            menuBar = a MacOSXMenuBar

            parentVisual = a ScheduledWindow 5106208

            focusedView = a TextEditorView

Temporaries:

            .self = a KeyboardProcessor

            .commandEvent = a CommandEvent Set (#doIt)

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>cull:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in KeyboardProcessor>>processKeyboardEvent:

            outerContext = KeyboardProcessor>>processKeyboardEvent:

            copiedValues = an Array[2]

Arguments:

            anObject = a CommandEvent Set (#doIt)

Context PC = 10

 

----------------------------------------------------------------------

CommandEvent(Object)>>ifNotNil:

Receiver:

            a CommandEvent

Instance Variables:

            time = nil

            initiator = an EventDispatcher

            window = a ScheduledWindow 5106208

            wasHandled = false

            state = nil

            commands = a Set[1]

Arguments:

            aBlock = BlockClosure [] in KeyboardProcessor>>processKeyboardEvent:

Context PC = 4

 

----------------------------------------------------------------------

KeyboardProcessor>>processKeyboardEvent:

Receiver:

            a KeyboardProcessor

Instance Variables:

            keyboardHook = nil

            focusIsShifting = false

            acceptOnControlChange = false

            menuBar = a MacOSXMenuBar

            parentVisual = a ScheduledWindow 5106208

            focusedView = a TextEditorView

Arguments:

            aKeyboardEvent = a KeyPressedEvent

Temporaries:

            commandEvent = a CommandEvent Set (#doIt)

Context PC = 11

 

----------------------------------------------------------------------

KeyboardProcessor>>processKeyboardEvent:for:

Receiver:

            a KeyboardProcessor

Instance Variables:

            keyboardHook = nil

            focusIsShifting = false

            acceptOnControlChange = false

            menuBar = a MacOSXMenuBar

            parentVisual = a ScheduledWindow 5106208

            focusedView = a TextEditorView

Arguments:

            keyboardEvent = a KeyPressedEvent

            aController = an ApplicationStandardSystemController

Temporaries:

            ev = a KeyPressedEvent

Context PC = 26

 

----------------------------------------------------------------------

EventDispatcher>>dispatchEvent:

Receiver:

            an EventDispatcher

Instance Variables:

            windowController = an ApplicationStandardSystemController

            currentMouseConsumer = nil

            grabbingMouse = false

            lastControlObject = nil

            trapList = nil

            state = nil

            repairDamageWhenDebugging = true

            flushQueueAfterError = true

            distributeEventsWhenDebugging = true

            dragDropInProgress = false

            dragDropTracker = nil

            dispatchUnknownEvents = false

Arguments:

            event = a KeyPressedEvent

Temporaries:

            objectWantingControl = nil

            targetKeyboardProcessor = a KeyboardProcessor

Context PC = 103

 

----------------------------------------------------------------------

KeyPressedEvent(Event)>>dispatch

Receiver:

            a KeyPressedEvent

Instance Variables:

            time = nil

            initiator = an EventDispatcher

            window = a ScheduledWindow 5106208

            wasHandled = false

            state = nil

            keyCharacter = $d "16r0064"

            metaState = 16

            alternativeKeyCharacter = $d "16r0064"

Context PC = 16

 

----------------------------------------------------------------------

KeyPressedEvent(Event)>>dispatchForWindowManager:

Receiver:

            a KeyPressedEvent

Instance Variables:

            time = nil

            initiator = an EventDispatcher

            window = a ScheduledWindow 5106208

            wasHandled = false

            state = nil

            keyCharacter = $d "16r0064"

            metaState = 16

            alternativeKeyCharacter = $d "16r0064"

Arguments:

            aWinMgr = a WindowManager

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in WindowManager>>safelyDispatchForWindowManager:

Receiver:

            an UndefinedObject

Temporaries:

            .event = a KeyPressedEvent

            .self = a WindowManager

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:

            outerContext = nil

            copiedValues = an Array[2]

Arguments:

            anExceptionSelector = BadControllerError

            handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:

Context PC = 18

 

----------------------------------------------------------------------

WindowManager>>safelyDispatchForWindowManager:

Receiver:

            a WindowManager

Instance Variables:

            windows = an OrderedCollection[4]

            activeController = nil

            interruptLock = false

            outstandingMetaOrDamage = false

            openInProgress = false

            eventQueue = an EventQueue

            baseProcess = a Process in Semaphore>>waitIfCurtailedSignal

            dontFilterEvents = false

Arguments:

            event = a KeyPressedEvent

Context PC = 13

 

----------------------------------------------------------------------

WindowManager>>processNextEvent

Receiver:

            a WindowManager

Instance Variables:

            windows = an OrderedCollection[4]

            activeController = nil

            interruptLock = false

            outstandingMetaOrDamage = false

            openInProgress = false

            eventQueue = an EventQueue

            baseProcess = a Process in Semaphore>>waitIfCurtailedSignal

            dontFilterEvents = false

Temporaries:

            event = a KeyPressedEvent

Context PC = 9

 

----------------------------------------------------------------------

optimized [] in [] in WindowManager>>newProcess

Receiver:

            an UndefinedObject

Temporaries:

            .self = a WindowManager

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in [] in WindowManager>>newProcess

            outerContext = nil

            copiedValues = a WindowManager

Arguments:

            anExceptionSelector = TerminateException

            handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in WindowManager>>newProcess

Receiver:

            an UndefinedObject

Temporaries:

            .self = a WindowManager

Context PC = 15

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

            a BlockClosure

Instance Variables:

            method = CompiledBlock [] in WindowManager>>newProcess

            outerContext = nil

            copiedValues = a WindowManager

Arguments:

            anExceptionSelector = TerminateException

            handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in Process class>>forBlock:priority:

Receiver:

            an UndefinedObject

Temporaries:

            .aBlock = BlockClosure [] in WindowManager>>newProcess

Context PC = 9

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

HTTPS-SHA256.zip (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: SHA256 + no derEncodedDigestInfo

cdavidshaffer

On Mar 7, 2015, at 8:18 PM, Boris Slobodin, DeepCove Labs <[hidden email]> wrote:

 
Please try the attached, I believe our 7.10.1 version is identical.
 
-Boris
DeepCove Labs


Thanks Boris!  For 7.10 I moved the derEncodedDigestInfo over to the class side but otherwise it worked perfectly.  Do you know if Cincom has this on their radar?  It seems odd that this problem existed through so many releases.

David


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: SHA256 + no derEncodedDigestInfo

Boris Popov, DeepCove Labs (SNN)
David, I'm not sure. I think I posted this to vw-dev also at some point. 

-Boris

On Mar 8, 2015, at 07:42, David Shaffer <[hidden email]> wrote:


On Mar 7, 2015, at 8:18 PM, Boris Slobodin, DeepCove Labs <[hidden email]> wrote:

 
Please try the attached, I believe our 7.10.1 version is identical.
 
-Boris
DeepCove Labs


Thanks Boris!  For 7.10 I moved the derEncodedDigestInfo over to the class side but otherwise it worked perfectly.  Do you know if Cincom has this on their radar?  It seems odd that this problem existed through so many releases.

David

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: SHA256 + no derEncodedDigestInfo

Mark Pirogovsky-3
In reply to this post by cdavidshaffer
David,
I reported that same issue 3 month ago to the VW dev development list, and apparently it was overlooked.
Here it goes again:

--Mark


-------- Forwarded Message --------
Subject: [vw-dev] [VW 7.10] Found a bug ( omission ) in the SHA package for VW7.10.1
Date: Tue, 30 Dec 2014 12:40:55 -0500
From: Mark Pirogovsky [hidden email]
Organization:
To: [hidden email]


In VW running on Windows XP or Linux  without OPenSSL try to do the 
following in the workspace:

Net.HttpClient get: 'https://api.todoist.com/API'  .

It will fail with MNU.

As it turned out,  the class Security.SHA256  was missing an 
implementation for the DER encoding which I implemented as follow:


 SHA256>> derEncodedDigestInfo

    ^self class derEncodedDigestInfo

"Depending on the algorithm DER encoded digest could be as follow( 
numbers are hex)    see page 42: http://www.ietf.org/rfc/rfc3447.txt.

MD5        30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10
SHA-1      30 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14
SHA-256    30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20
SHA-384    30 41 30 0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30
SHA-512    30 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40

"

    "@__markp    12/30/2014 11:57:57 AM"

SHA256 class >> derEncodedDigestInfo

    "    | ar bAr |
    ar := #('30' '31' '30' '0d' '06' '09' '60' '86' '48' '01' '65' '03' 
'04' '02' '01' '05' '00' '04' '20').
    bAr := ByteArray new: ar size.
    1 to: ar size
        do: [:ind | bAr at: ind put: (Integer readFrom: (ar at: ind) 
readStream radix: 16)].
    ^bAr"

    ^#[48 49 48 13 6 9 96 134 72 1 101 3 4 2 1 5 0 4 32]

    "@__markp    12/30/2014 12:17:00 PM"
____________________________________________________________
Apple&#39;s Crazy New Gizmo
Forget the iPhone 6. Next hit Apple product leaked. &#40;see picture&#41;
http://thirdpartyoffers.netzero.net/TGL3241/54a2e3a8d27a563a72b38st04vuc

_______________________________________________
vw-dev mailing list
[hidden email]
http://lists.cincom.com/cgi-bin/mailman/listinfo/vw-dev




David Shaffer wrote:
I have certificates signed using SHA256 (these are the certificate authorities provided by Dropbox — attached).  These don’t work in VisualWorks 7.10.1 and newer as noted in the Security Guide:


It suggests a workaround but I don’t see how to directly apply this to certificate signatures except by hacking up Cincom’s code and if it were that easy I’d assume they wouldn't have this limitation in the first place.  I have attached a stack trace for reference.  Has anyone else hit this?  Anyone have a suggestion?

BTW, my Dropbox client is in the open repository and works very well in VW7.9 and older as long as you’re using a version that includes a working security package.

David


 

____________________________________________________________
Old School Yearbook Pics
View Class Yearbooks Online Free. Search by School & Year. Look Now!
classmates.com
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc