go-ora: Wallet Generated with Oracle 11 not valid

Unable to use a cwallet.sso that was generated using Oracle 19

I have been able to connect/query this DB with out TCPS (using TCP, no SSL)

When using TCPS, and attempting to pass through wallet I get

My wallet is placed in at ./ssl/cwallet.sso

urlOptions := map[string]string{
  "wallet": "./ssl/",
}

The error thrown is: source of error: https://github.com/sijms/go-ora/blob/master/v2/wallet.go#L86

invalid wallet header

num3 in our scenario is equal to 53


We are using JDBC for our connection string

'jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCPS)(HOST = hostname.com)(PORT = ####))) (CONNECT_DATA = (SERVICE_NAME = SERVICE_NAME)))'

We have validated that this wallet does work with other clients.

Wallet is passwordless


Whole code block is as follows (attempted with and without commented block):

import (
    go_ora "github.com/sijms/go-ora/v2"
)

func (db Database) NewConnection(pw string) (*go_ora.Connection, error) {
	return go_ora.NewConnection(buildConnectionString(db, pw))
}

func buildConnectionString(db Database, password string) string {
	if db.JDBC != nil {
		urlOptions := map[string]string{
			"wallet":     "./ssl/",
//			"SSL":        "enable",
//			"SSL Verify": "true",
		}
		return go_ora.BuildJDBC(*db.Username, password, *db.JDBC, urlOptions)
	}

}

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 19 (10 by maintainers)

Most upvoted comments

in wallet.go

} else if num3 == 6 {
	index++
	rgbKey := fileData[index : index+16]
	index += 16
	blk, err := aes.NewCipher(rgbKey)
	if err != nil {
		return err
	}
	dec := cipher.NewCBCDecrypter(blk, []byte{192, 52, 216, 49, 28, 2, 206, 248, 81, 240, 20, 75, 129, 237, 75, 242})
	w.password = make([]byte, 16)
	dec.CryptBlocks(w.password, fileData[index:index+16])
	index += 16
} else {

after num3 I read the aes key but according to the link if num3 == 0x41 it will be DES key so we are not talking about 19c Wallet but 11g wallet

I have oracle 9 but not 11g so I will try creating wallet with oracle 9 and see its format