restructure class files
This commit is contained in:
65
ts/smartssh.classes.sshkey.ts
Normal file
65
ts/smartssh.classes.sshkey.ts
Normal file
@ -0,0 +1,65 @@
|
||||
import "typings-global";
|
||||
import * as plugins from "./smartssh.plugins";
|
||||
import * as helpers from "./smartssh.classes.helpers";
|
||||
|
||||
export class sshKey {
|
||||
private privKey:string;
|
||||
private pubKey:string;
|
||||
private hostVar:string;
|
||||
constructor(optionsArg:{private?:string,public?:string,host?:string}={}){
|
||||
this.privKey = optionsArg.private;
|
||||
this.pubKey = optionsArg.public;
|
||||
this.hostVar = optionsArg.host;
|
||||
};
|
||||
|
||||
// getters
|
||||
get host(){
|
||||
return this.hostVar;
|
||||
};
|
||||
get privateKey(){
|
||||
return this.privKey;
|
||||
};
|
||||
get privateKeyBase64(){
|
||||
return plugins.base64.encode(this.privKey);
|
||||
}
|
||||
get publicKey(){
|
||||
return this.publicKey;
|
||||
}
|
||||
get publicKeyBase64(){
|
||||
return plugins.base64.encode(this.pubKey);
|
||||
}
|
||||
get type(){
|
||||
if(this.privKey && this.pubKey){
|
||||
return "duplex";
|
||||
} else if(this.privKey){
|
||||
return "private";
|
||||
} else if(this.pubKey){
|
||||
return "public";
|
||||
}
|
||||
};
|
||||
|
||||
// setters
|
||||
set host(hostArg:string){
|
||||
this.hostVar = hostArg;
|
||||
};
|
||||
set privateKey(privateKeyArg:string){
|
||||
this.privKey = privateKeyArg;
|
||||
};
|
||||
// setters
|
||||
set publicKey(publicKeyArg:string){
|
||||
this.pubKey = publicKeyArg;
|
||||
};
|
||||
|
||||
store(filePathArg?:string){
|
||||
let filePathObj = plugins.path.parse(filePathArg);
|
||||
if(filePathObj.ext = ".priv"){
|
||||
plugins.smartfile.memory.toFsSync(this.privKey,{fileName:filePathObj.name + filePathObj.ext,filePath:filePathObj.dir});
|
||||
} else if (filePathObj.ext = ".pub"){
|
||||
plugins.smartfile.memory.toFsSync(this.pubKey,{fileName:filePathObj.name + filePathObj.ext,filePath:filePathObj.dir});
|
||||
} else { //we assume we are given a directory as filePathArg, so we store the whole key
|
||||
plugins.fs.ensureDirSync(filePathObj.dir);
|
||||
this.store(plugins.path.join(filePathObj.dir,"key.priv")); // call this function recursivly
|
||||
this.store(plugins.path.join(filePathObj.dir,"key.priv")); // call this function recursivly
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user